Software /
code /
prosody-modules
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 |
parent | 729:ce8e7b784be0 |
child | 817: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 |