Mercurial > prosody-modules
diff mod_pubsub_feed/mod_pubsub_feed.lua @ 405:fe4fdba21a23
mod_pubsub_feed: Kill the timer on module unload
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 27 Aug 2011 04:49:11 +0200 |
parents | fc62b26dfdf6 |
children | 52f2188ec47d |
line wrap: on
line diff
--- a/mod_pubsub_feed/mod_pubsub_feed.lua Thu Aug 25 12:22:48 2011 +0500 +++ b/mod_pubsub_feed/mod_pubsub_feed.lua Sat Aug 27 04:49:11 2011 +0200 @@ -52,6 +52,12 @@ -- TODO module:hook("config-reloaded", above loop); -- Also, keeping it somewhere persistent in order to avoid duplicated publishes? +-- Used to kill the timer +local module_unloaded = false; +function module.unload() + module_unloaded = true; +end + -- Thanks to Maranda for this local port, base, ssl = 5280, "callback", false; local ports = module:get_option("feeds_ports") or { port = port, base = base, ssl = ssl }; @@ -76,6 +82,7 @@ ["400"] = "Bad Request"; ["403"] = "Forbidden"; ["404"] = "Not Found"; + ["500"] = "Internal Server Error"; ["501"] = "Not Implemented"; }; @@ -162,6 +169,7 @@ end function refresh_feeds() + if module_unloaded then return end --module:log("debug", "Refreshing feeds"); for node, item in pairs(feed_list) do --FIXME Don't fetch feeds which have a subscription @@ -202,6 +210,11 @@ end function handle_http_request(method, body, request) + if module_unloaded then + module:log("warn", "Received a HTTP request after module unload"); + return http_response(500) + -- FIXME if this happens. + end --module:log("debug", "%s request to %s%s with body %s", method, request.url.path, request.url.query and "?" .. request.url.query or "", #body > 0 and body or "empty"); local query = request.url.query or {}; if query and type(query) == "string" then