Diff

mod_host_guard/mod_host_guard.lua @ 725:f79fda2d7e51

mod_host_guard: host handlers are now cleaned properly on module unload (and also still on re/load to be safe).
author Marco Cirillo <maranda@lightwitch.org>
date Mon, 25 Jun 2012 23:26:09 +0000
parent 724:b94010de43f6
child 726:455a9b8fac27
line wrap: on
line diff
--- a/mod_host_guard/mod_host_guard.lua	Mon Jun 25 22:32:54 2012 +0000
+++ b/mod_host_guard/mod_host_guard.lua	Mon Jun 25 23:26:09 2012 +0000
@@ -63,7 +63,8 @@
 end
 
 local function init_hosts()
-	for n,table in pairs(hosts) do
+	for n in pairs(hosts) do
+		-- This is a bit redundant but better safe then sorry.
 		hosts[n].events.remove_handler("s2sin-established", s2s_hook)
 		hosts[n].events.remove_handler("route/remote", rr_hook)
 		hosts[n].events.remove_handler("stanza/jabber:server:dialback:result", s2s_hook)
@@ -90,8 +91,18 @@
         init_hosts()
 end
 
+function module.unload()
+	module:log ("debug", "removing host handlers as module is being unloaded...")
+	for n in pairs(hosts) do
+		hosts[n].events.remove_handler("s2sin-established", s2s_hook)
+		hosts[n].events.remove_handler("route/remote", rr_hook)
+		hosts[n].events.remove_handler("stanza/jabber:server:dialback:result", s2s_hook)
+	end
+end
+
 if prosody.start_time then
 	setup()
 else
 	module:hook ("server-started", setup)
 end
+