comparison mod_s2s_never_encrypt_blacklist/mod_s2s_never_encrypt_blacklist.lua @ 924:0a78ac54bd03

mod_s2s_never_encrypt_blacklist: conn objects on libev carry a metatable, perhaps have starttls set to false instead of nil.
author Marco Cirillo <maranda@lightwitch.org>
date Thu, 07 Mar 2013 18:26:07 +0100
parents 5f38d762d071
children c08b424583c3
comparison
equal deleted inserted replaced
923:5f38d762d071 924:0a78ac54bd03
1 -- Filter out servers which gets choppy and buggy when it comes to starttls. 1 -- Filter out servers which gets choppy and buggy when it comes to starttls.
2 2
3 local bad_servers = module:get_option_set("tls_s2s_blacklist", {}) 3 local bad_servers = module:get_option_set("tls_s2s_blacklist", {})
4 local bad_servers_ip = module:get_option_set("tls_s2s_blacklist_ip", {}) 4 local bad_servers_ip = module:get_option_set("tls_s2s_blacklist_ip", {})
5 local libev = module:get_option_boolean("use_libevent")
5 6
6 local function disable_tls_for_baddies_in(event) 7 local function disable_tls_for_baddies_in(event)
7 local session = event.origin 8 local session = event.origin
8 if bad_servers:contains(session.from_host) or bad_servers_ip:contains(session.conn:ip()) then 9 if bad_servers:contains(session.from_host) or bad_servers_ip:contains(session.conn:ip()) then
9 module:log("debug", "disabling tls on incoming stream from %s...", tostring(session.from_host)); 10 module:log("debug", "disabling tls on incoming stream from %s...", tostring(session.from_host));
10 session.conn.starttls = nil; 11 if libev then session.conn.starttls = false; else session.conn.starttls = nil; end
11 end 12 end
12 end 13 end
13 14
14 local function disable_tls_for_baddies_out(event) 15 local function disable_tls_for_baddies_out(event)
15 local session = event.origin 16 local session = event.origin
16 if bad_servers:contains(session.to_host) then 17 if bad_servers:contains(session.to_host) then
17 module:log("debug", "disabling tls on outgoing stream from %s...", tostring(session.to_host)); 18 module:log("debug", "disabling tls on outgoing stream from %s...", tostring(session.to_host));
18 session.conn.starttls = nil; 19 if libev then session.conn.starttls = false; else session.conn.starttls = nil; end
19 end 20 end
20 end 21 end
21 22
22 module:hook("s2s-stream-features", disable_tls_for_baddies_in, 600) 23 module:hook("s2s-stream-features", disable_tls_for_baddies_in, 600)
23 module:hook("stanza/http://etherx.jabber.org/streams:features", disable_tls_for_baddies_out, 600) 24 module:hook("stanza/http://etherx.jabber.org/streams:features", disable_tls_for_baddies_out, 600)