Mercurial > prosody-modules
diff mod_host_guard/mod_host_guard.lua @ 728:8ad2e24f5efd
mod_host_guard: reduced code duplication and added better logging.
author | Marco Cirillo <maranda@lightwitch.org> |
---|---|
date | Tue, 26 Jun 2012 12:05:24 +0000 |
parents | 99f5846bcd85 |
children | ce8e7b784be0 |
line wrap: on
line diff
--- a/mod_host_guard/mod_host_guard.lua Tue Jun 26 10:57:24 2012 +0000 +++ b/mod_host_guard/mod_host_guard.lua Tue Jun 26 12:05:24 2012 +0000 @@ -40,37 +40,37 @@ return nil end -local function handle_activation (host) +local function handle_activation (host, u) if guard_blockall:contains(host) or guard_protect:contains(host) then if hosts[host] and hosts[host].events then hosts[host].events.add_handler("s2sin-established", s2s_hook, 500) hosts[host].events.add_handler("route/remote", rr_hook, 500) hosts[host].events.add_handler("stanza/jabber:server:dialback:result", s2s_hook, 500) - module:log ("debug", "adding host protection for: "..host) + if not u then + module:log ("debug", "adding host protection for: "..host) + else + module:log ("debug", "updating host protection for: "..host) + end end end end -local function handle_deactivation (host) +local function handle_deactivation (host, u, i) if guard_blockall:contains(host) or guard_protect:contains(host) then if hosts[host] and hosts[host].events then hosts[host].events.remove_handler("s2sin-established", s2s_hook) hosts[host].events.remove_handler("route/remote", rr_hook) hosts[host].events.remove_handler("stanza/jabber:server:dialback:result", s2s_hook) - module:log ("debug", "removing host protection for: "..host) + if not u and not i then module:log ("debug", "removing host protection for: "..host) end end end end -local function init_hosts() +local function init_hosts(u, i) for n in pairs(hosts) do if guard_blockall:contains(n) or guard_protect:contains(n) then - -- required as during config:reload() handlers should be reinitialized as well. - 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) - - handle_activation(n) + handle_deactivation(n, u, i) + handle_activation(n, u) end end end @@ -82,7 +82,7 @@ guard_protect = module:get_option_set("host_guard_selective", {}) guard_block_bl = module:get_option_set("host_guard_blacklist", {}) - init_hosts() + init_hosts(true) end local function setup() @@ -91,7 +91,7 @@ module:hook ("host-deactivated", handle_deactivation) module:hook ("config-reloaded", reload) - init_hosts() + init_hosts(false, true) end function module.unload()