Mercurial > prosody-modules
comparison mod_server_status/mod_server_status.lua @ 564:0b52d82ea0b3
mod_server_status: added http cleanup code from mod_register_json
author | Marco Cirillo <maranda@lightwitch.org> |
---|---|
date | Tue, 17 Jan 2012 01:40:58 +0000 |
parents | 0afe88f9bdde |
children | fe85e18a06cb |
comparison
equal
deleted
inserted
replaced
563:cd5581b58fdc | 564:0b52d82ea0b3 |
---|---|
127 end | 127 end |
128 end | 128 end |
129 | 129 |
130 -- initialization. | 130 -- initialization. |
131 -- init http interface | 131 -- init http interface |
132 | |
133 function cleanup() -- handy, recycled from mod_register_json | |
134 module:log("debug", "Cleaning up handlers and stuff as module is being unloaded.") | |
135 for _, options in ipairs(ports) do | |
136 if options.port then | |
137 httpserver.new.http_servers[options.port].handlers[options.path or "server-status"] = nil | |
138 end | |
139 end | |
140 | |
141 local event = require "core.configmanager".get("*", "core", "use_libevent"); | |
142 | |
143 -- if there're no handlers left clean the socket, not sure if it works with server_select | |
144 if not event then | |
145 for _, options in ipairs(ports) do | |
146 if options.port and not next(httpserver.new.http_servers[options.port].handlers) then | |
147 httpserver.new.http_servers[options.port] = nil | |
148 if options.interface then | |
149 for _, value in ipairs(options.interface) do | |
150 if server.getserver(value, options.port) then server.removeserver(value, options.port) end | |
151 end | |
152 else if server.getserver("*", options.port) then server.removeserver("*", options.port) end end | |
153 end | |
154 end | |
155 end | |
156 | |
157 prosody.events.remove_handler("module-unloaded", cleanup) | |
158 end | |
159 | |
132 local function setup() | 160 local function setup() |
133 httpserver.new_from_config(ports, request, { base = "server-status" }) | 161 httpserver.new_from_config(ports, request, { base = "server-status" }) |
162 prosody.events.add_handler("module-unloaded", cleanup) | |
134 end | 163 end |
135 | 164 |
136 if prosody.start_time then | 165 if prosody.start_time then |
137 setup() | 166 setup() |
138 else | 167 else |