Software /
code /
prosody-modules
Comparison
mod_stanza_counter/mod_stanza_counter_http.lua @ 600:03be4622454f
mod_stanza_counter_http: de-revert to use configmanager instead of module mm for the cleanup function also give it an unique name (mismatch possible "??")
author | Marco Cirillo <maranda@lightwitch.org> |
---|---|
date | Thu, 09 Feb 2012 00:52:18 +0000 |
parent | 568:3d66b0af9a15 |
child | 608:fb9a2ab8458a |
comparison
equal
deleted
inserted
replaced
599:7df0d5c8abfd | 600:03be4622454f |
---|---|
42 end | 42 end |
43 | 43 |
44 -- initialization. | 44 -- initialization. |
45 -- init http and cleanup interface | 45 -- init http and cleanup interface |
46 | 46 |
47 function cleanup() -- recycled from mod_register_json, it's handy | 47 function sc_cleanup() -- recycled from mod_register_json, it's handy |
48 module:log("debug", "Cleaning up handlers and stuff as module is being unloaded.") | 48 module:log("debug", "Cleaning up handlers and stuff as module is being unloaded.") |
49 for _, options in ipairs(ports) do | 49 for _, options in ipairs(ports) do |
50 if options.port then | 50 if options.port then |
51 httpserver.new.http_servers[options.port].handlers[options.path or "stanza-counter"] = nil | 51 httpserver.new.http_servers[options.port].handlers[options.path or "stanza-counter"] = nil |
52 end | 52 end |
53 end | 53 end |
54 | 54 |
55 -- if there are no handlers left clean and close the socket, doesn't work with server_event | 55 -- if there are no handlers left clean and close the socket, doesn't work with server_event |
56 local event = module:get_option_boolen("use_libevent", false) | 56 local event = require "core.configmanager".get("*", "core", "use_libevent") |
57 | 57 |
58 if not event then | 58 if not event then |
59 for _, options in ipairs(ports) do | 59 for _, options in ipairs(ports) do |
60 if options.port and not next(httpserver.new.http_servers[options.port].handlers) then | 60 if options.port and not next(httpserver.new.http_servers[options.port].handlers) then |
61 httpserver.new.http_servers[options.port] = nil | 61 httpserver.new.http_servers[options.port] = nil |
66 else if server.getserver("*", options.port) then server.removeserver("*", options.port) end end | 66 else if server.getserver("*", options.port) then server.removeserver("*", options.port) end end |
67 end | 67 end |
68 end | 68 end |
69 end | 69 end |
70 | 70 |
71 prosody.events.remove_handler("module-unloaded", cleanup) | 71 prosody.events.remove_handler("module-unloaded", sc_cleanup) |
72 end | 72 end |
73 | 73 |
74 local function setup() | 74 local function setup() |
75 httpserver.new_from_config(ports, req, { base = "stanza-counter" }) | 75 httpserver.new_from_config(ports, req, { base = "stanza-counter" }) |
76 prosody.events.add_handler("module-unloaded", cleanup) | 76 prosody.events.add_handler("module-unloaded", sc_cleanup) |
77 end | 77 end |
78 | 78 |
79 -- set it | 79 -- set it |
80 if prosody.start_time then setup() else module:hook("server-started", setup) end | 80 if prosody.start_time then setup() else module:hook("server-started", setup) end |