Comparison

plugins/mod_dialback.lua @ 4316:2478698bdc52

Merge 0.8->trunk
author Matthew Wild <mwild1@gmail.com>
date Tue, 07 Jun 2011 01:29:34 +0100
parent 4264:fa36e749749c
parent 4314:1e1110840965
child 4567:24617f360200
comparison
equal deleted inserted replaced
4307:332fc256c76e 4316:2478698bdc52
58 origin.log("info", "%s tried to connect to %s, which we don't serve", attr.from, attr.to); 58 origin.log("info", "%s tried to connect to %s, which we don't serve", attr.from, attr.to);
59 origin:close("host-unknown"); 59 origin:close("host-unknown");
60 return true; 60 return true;
61 end 61 end
62 62
63 dialback_requests[attr.from] = origin; 63 dialback_requests[attr.from.."/"..origin.streamid] = origin;
64 64
65 if not origin.from_host then 65 if not origin.from_host then
66 -- Just used for friendlier logging 66 -- Just used for friendlier logging
67 origin.from_host = attr.from; 67 origin.from_host = attr.from;
68 end 68 end
81 module:hook("stanza/jabber:server:dialback:verify", function(event) 81 module:hook("stanza/jabber:server:dialback:verify", function(event)
82 local origin, stanza = event.origin, event.stanza; 82 local origin, stanza = event.origin, event.stanza;
83 83
84 if origin.type == "s2sout_unauthed" or origin.type == "s2sout" then 84 if origin.type == "s2sout_unauthed" or origin.type == "s2sout" then
85 local attr = stanza.attr; 85 local attr = stanza.attr;
86 local dialback_verifying = dialback_requests[attr.from]; 86 local dialback_verifying = dialback_requests[attr.from.."/"..(attr.id or "")];
87 if dialback_verifying then 87 if dialback_verifying and attr.from == origin.to_host then
88 local valid; 88 local valid;
89 if attr.type == "valid" then 89 if attr.type == "valid" then
90 s2s_make_authenticated(dialback_verifying, attr.from); 90 s2s_make_authenticated(dialback_verifying, attr.from);
91 valid = "valid"; 91 valid = "valid";
92 else 92 else
99 else 99 else
100 dialback_verifying.sends2s( 100 dialback_verifying.sends2s(
101 st.stanza("db:result", { from = attr.to, to = attr.from, id = attr.id, type = valid }) 101 st.stanza("db:result", { from = attr.to, to = attr.from, id = attr.id, type = valid })
102 :text(dialback_verifying.hosts[attr.from].dialback_key)); 102 :text(dialback_verifying.hosts[attr.from].dialback_key));
103 end 103 end
104 dialback_requests[attr.from] = nil; 104 dialback_requests[attr.from.."/"..(attr.id or "")] = nil;
105 end 105 end
106 return true; 106 return true;
107 end 107 end
108 end); 108 end);
109 109