Comparison

plugins/mod_dialback.lua @ 1077:d6a885cacd8c

mod_dialback: Miscellaneous logging improvements, changing levels, improving messages and using session loggers where possible
author Matthew Wild <mwild1@gmail.com>
date Thu, 30 Apr 2009 02:45:33 +0100
parent 1070:3b066968063b
child 1337:16c5aa4696ca
comparison
equal deleted inserted replaced
1076:ba3639692493 1077:d6a885cacd8c
22 local dialback_requests = setmetatable({}, { __mode = 'v' }); 22 local dialback_requests = setmetatable({}, { __mode = 'v' });
23 23
24 module:add_handler({"s2sin_unauthed", "s2sin"}, "verify", xmlns_dialback, 24 module:add_handler({"s2sin_unauthed", "s2sin"}, "verify", xmlns_dialback,
25 function (origin, stanza) 25 function (origin, stanza)
26 -- We are being asked to verify the key, to ensure it was generated by us 26 -- We are being asked to verify the key, to ensure it was generated by us
27 log("debug", "verifying dialback key..."); 27 origin.log("debug", "verifying that dialback key is ours...");
28 local attr = stanza.attr; 28 local attr = stanza.attr;
29 -- FIXME: Grr, ejabberd breaks this one too?? it is black and white in XEP-220 example 34 29 -- FIXME: Grr, ejabberd breaks this one too?? it is black and white in XEP-220 example 34
30 --if attr.from ~= origin.to_host then error("invalid-from"); end 30 --if attr.from ~= origin.to_host then error("invalid-from"); end
31 local type; 31 local type;
32 if s2s_verify_dialback(attr.id, attr.from, attr.to, stanza[1]) then 32 if s2s_verify_dialback(attr.id, attr.from, attr.to, stanza[1]) then
33 type = "valid" 33 type = "valid"
34 else 34 else
35 type = "invalid" 35 type = "invalid"
36 log("warn", "Asked to verify a dialback key that was incorrect. An imposter is claiming to be %s?", attr.to); 36 origin.log("warn", "Asked to verify a dialback key that was incorrect. An imposter is claiming to be %s?", attr.to);
37 end 37 end
38 log("debug", "verified dialback key... it is %s", type); 38 origin.log("debug", "verified dialback key... it is %s", type);
39 origin.sends2s(st.stanza("db:verify", { from = attr.to, to = attr.from, id = attr.id, type = type }):text(stanza[1])); 39 origin.sends2s(st.stanza("db:verify", { from = attr.to, to = attr.from, id = attr.id, type = type }):text(stanza[1]));
40 end); 40 end);
41 41
42 module:add_handler({ "s2sin_unauthed", "s2sin" }, "result", xmlns_dialback, 42 module:add_handler({ "s2sin_unauthed", "s2sin" }, "result", xmlns_dialback,
43 function (origin, stanza) 43 function (origin, stanza)
46 local attr = stanza.attr; 46 local attr = stanza.attr;
47 origin.hosts[attr.from] = { dialback_key = stanza[1] }; 47 origin.hosts[attr.from] = { dialback_key = stanza[1] };
48 48
49 if not hosts[attr.to] then 49 if not hosts[attr.to] then
50 -- Not a host that we serve 50 -- Not a host that we serve
51 log("info", "%s tried to connect to %s, which we don't serve", attr.from, attr.to); 51 origin.log("info", "%s tried to connect to %s, which we don't serve", attr.from, attr.to);
52 origin:close("host-unknown"); 52 origin:close("host-unknown");
53 return; 53 return;
54 end 54 end
55 55
56 dialback_requests[attr.from] = origin; 56 dialback_requests[attr.from] = origin;
62 if not origin.to_host then 62 if not origin.to_host then
63 -- Just used for friendlier logging 63 -- Just used for friendlier logging
64 origin.to_host = attr.to; 64 origin.to_host = attr.to;
65 end 65 end
66 66
67 log("debug", "asking %s if key %s belongs to them", attr.from, stanza[1]); 67 origin.log("debug", "asking %s if key %s belongs to them", attr.from, stanza[1]);
68 send_s2s(attr.to, attr.from, 68 send_s2s(attr.to, attr.from,
69 st.stanza("db:verify", { from = attr.to, to = attr.from, id = origin.streamid }):text(stanza[1])); 69 st.stanza("db:verify", { from = attr.to, to = attr.from, id = origin.streamid }):text(stanza[1]));
70 end); 70 end);
71 71
72 module:add_handler({ "s2sout_unauthed", "s2sout" }, "verify", xmlns_dialback, 72 module:add_handler({ "s2sout_unauthed", "s2sout" }, "verify", xmlns_dialback,