Comparison

mod_stanza_counter/mod_stanza_counter_http.lua @ 608:fb9a2ab8458a

mod_stanza_counter_http: remove cleanup function move it to a separate plugin.
author Marco Cirillo <maranda@lightwitch.org>
date Sun, 12 Feb 2012 18:01:12 +0000
parent 600:03be4622454f
child 650:34e7093cf419
comparison
equal deleted inserted replaced
607:121762432eb1 608:fb9a2ab8458a
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 sc_cleanup() -- recycled from mod_register_json, it's handy
48 module:log("debug", "Cleaning up handlers and stuff as module is being unloaded.")
49 for _, options in ipairs(ports) do
50 if options.port then
51 httpserver.new.http_servers[options.port].handlers[options.path or "stanza-counter"] = nil
52 end
53 end
54
55 -- if there are no handlers left clean and close the socket, doesn't work with server_event
56 local event = require "core.configmanager".get("*", "core", "use_libevent")
57
58 if not event then
59 for _, options in ipairs(ports) do
60 if options.port and not next(httpserver.new.http_servers[options.port].handlers) then
61 httpserver.new.http_servers[options.port] = nil
62 if options.interface then
63 for _, value in ipairs(options.interface) do
64 if server.getserver(value, options.port) then server.removeserver(value, options.port) end
65 end
66 else if server.getserver("*", options.port) then server.removeserver("*", options.port) end end
67 end
68 end
69 end
70
71 prosody.events.remove_handler("module-unloaded", sc_cleanup)
72 end
73
74 local function setup() 47 local function setup()
75 httpserver.new_from_config(ports, req, { base = "stanza-counter" }) 48 httpserver.new_from_config(ports, req, { base = "stanza-counter" })
76 prosody.events.add_handler("module-unloaded", sc_cleanup)
77 end 49 end
78 50
79 -- set it 51 -- set it
80 if prosody.start_time then setup() else module:hook("server-started", setup) end 52 if prosody.start_time then setup() else module:hook("server-started", setup) end