Comparison

plugins/mod_dialback.lua @ 11558:d0e9ffccdef9 0.11 0.11.9

mod_dialback: Remove d-w-d feature Backs out 1d0862814bfc and 2fdd71b08126 Largely unused, undocumented and did not have enough tests to provide confidence in its correct operation.
author Kim Alvefur <zash@zash.se>
date Wed, 12 May 2021 17:22:02 +0200
parent 11557:6be890ca492e
child 11560:3bbb1af92514
comparison
equal deleted inserted replaced
11557:6be890ca492e 11558:d0e9ffccdef9
20 local xmlns_stream = "http://etherx.jabber.org/streams"; 20 local xmlns_stream = "http://etherx.jabber.org/streams";
21 21
22 local dialback_requests = setmetatable({}, { __mode = 'v' }); 22 local dialback_requests = setmetatable({}, { __mode = 'v' });
23 23
24 local dialback_secret = sha256_hash(module:get_option_string("dialback_secret", uuid_gen()), true); 24 local dialback_secret = sha256_hash(module:get_option_string("dialback_secret", uuid_gen()), true);
25 local dwd = module:get_option_boolean("dialback_without_dialback", false);
26
27 --- Helper to check that a session peer's certificate is valid
28 function check_cert_status(session, host)
29 local conn = session.conn:socket()
30 local cert
31 if conn.getpeercertificate then
32 cert = conn:getpeercertificate()
33 end
34
35 return module:fire_event("s2s-check-certificate", { host = host, session = session, cert = cert });
36 end
37
38 25
39 function module.save() 26 function module.save()
40 return { dialback_secret = dialback_secret }; 27 return { dialback_secret = dialback_secret };
41 end 28 end
42 29
102 return true; 89 return true;
103 elseif not from then 90 elseif not from then
104 origin:close("improper-addressing"); 91 origin:close("improper-addressing");
105 end 92 end
106 93
107 if dwd and origin.secure then
108 if check_cert_status(origin, from) == false then
109 return
110 elseif origin.cert_chain_status == "valid" and origin.cert_identity_status == "valid" then
111 origin.sends2s(st.stanza("db:result", { to = from, from = to, id = attr.id, type = "valid" }));
112 module:fire_event("s2s-authenticated", { session = origin, host = from });
113 return true;
114 end
115 end
116 94
117 origin.hosts[from] = { dialback_key = stanza[1] }; 95 origin.hosts[from] = { dialback_key = stanza[1] };
118 96
119 dialback_requests[from.."/"..origin.streamid] = origin; 97 dialback_requests[from.."/"..origin.streamid] = origin;
120 98