comparison mod_host_guard/mod_host_guard.lua @ 815:b16b291d68c3

mod_host_guard: prevent possible traceback during host manual activation/deactivation.
author Marco Cirillo <maranda@lightwitch.org>
date Wed, 12 Sep 2012 19:15:45 +0000
parents ce8e7b784be0
children f826b5935175
comparison
equal deleted inserted replaced
814:881ec9919144 815:b16b291d68c3
40 return nil 40 return nil
41 end 41 end
42 42
43 local function handle_activation (host, u) 43 local function handle_activation (host, u)
44 if guard_blockall:contains(host) or guard_protect:contains(host) then 44 if guard_blockall:contains(host) or guard_protect:contains(host) then
45 if hosts[host] and hosts[host].events then 45 if hosts[host] and hosts[host].events and (hosts[host].modules and not hosts[host].modules["auth_anonymous"]) then
46 hosts[host].events.add_handler("s2sin-established", s2s_hook, 500) 46 hosts[host].events.add_handler("s2sin-established", s2s_hook, 500)
47 hosts[host].events.add_handler("route/remote", rr_hook, 500) 47 hosts[host].events.add_handler("route/remote", rr_hook, 500)
48 hosts[host].events.add_handler("stanza/jabber:server:dialback:result", s2s_hook, 500) 48 hosts[host].events.add_handler("stanza/jabber:server:dialback:result", s2s_hook, 500)
49 if not u then 49 if not u then
50 module:log ("debug", "adding host protection for: "..host) 50 module:log ("debug", "adding host protection for: "..host)
55 end 55 end
56 end 56 end
57 57
58 local function handle_deactivation (host, u, i) 58 local function handle_deactivation (host, u, i)
59 if guard_blockall:contains(host) or guard_protect:contains(host) then 59 if guard_blockall:contains(host) or guard_protect:contains(host) then
60 if hosts[host] and hosts[host].events then 60 if hosts[host] and hosts[host].events and (hosts[host].modules and not hosts[host].modules["auth_anonymous"]) then
61 hosts[host].events.remove_handler("s2sin-established", s2s_hook) 61 hosts[host].events.remove_handler("s2sin-established", s2s_hook)
62 hosts[host].events.remove_handler("route/remote", rr_hook) 62 hosts[host].events.remove_handler("route/remote", rr_hook)
63 hosts[host].events.remove_handler("stanza/jabber:server:dialback:result", s2s_hook) 63 hosts[host].events.remove_handler("stanza/jabber:server:dialback:result", s2s_hook)
64 if not u and not i then module:log ("debug", "removing host protection for: "..host) end 64 if not u and not i then module:log ("debug", "removing host protection for: "..host) end
65 end 65 end