Mercurial > prosody-modules
comparison mod_server_status/mod_server_status.lua @ 609:edb4afb6a227
mod_server_status: remove cleanup function move it to a separate plugin.
| author | Marco Cirillo <maranda@lightwitch.org> |
|---|---|
| date | Sun, 12 Feb 2012 18:01:48 +0000 |
| parents | 00590d492a5b |
| children | dfd7f1ed7782 |
comparison
equal
deleted
inserted
replaced
| 608:fb9a2ab8458a | 609:edb4afb6a227 |
|---|---|
| 128 end | 128 end |
| 129 | 129 |
| 130 -- initialization. | 130 -- initialization. |
| 131 -- init http interface | 131 -- init http interface |
| 132 | 132 |
| 133 function stats_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", stats_cleanup) | |
| 158 end | |
| 159 | |
| 160 local function setup() | 133 local function setup() |
| 161 httpserver.new_from_config(ports, request, { base = "server-status" }) | 134 httpserver.new_from_config(ports, request, { base = "server-status" }) |
| 162 prosody.events.add_handler("module-unloaded", stats_cleanup) | |
| 163 end | 135 end |
| 164 | 136 |
| 165 if prosody.start_time then | 137 if prosody.start_time then |
| 166 setup() | 138 setup() |
| 167 else | 139 else |
