Comparison

plugins/mod_dialback.lua @ 4842:88101f652174

Backed out changeset 9f1fb34cd7f8 - obsoleted by 5ef05f32bc42.
author Matthew Wild <mwild1@gmail.com>
date Fri, 11 May 2012 01:39:52 +0100
parent 4837:9f1fb34cd7f8
child 4843:d91dda67647a
comparison
equal deleted inserted replaced
4837:9f1fb34cd7f8 4842:88101f652174
74 return true; 74 return true;
75 end 75 end
76 76
77 dialback_requests[attr.from.."/"..origin.streamid] = origin; 77 dialback_requests[attr.from.."/"..origin.streamid] = origin;
78 78
79 local compat_check;
80 if not origin.from_host then 79 if not origin.from_host then
81 -- Just used for friendlier logging 80 -- Just used for friendlier logging
82 origin.from_host = nameprep(attr.from); 81 origin.from_host = nameprep(attr.from);
83 -- COMPAT: Fix server's chopness by not including from 82 -- COMPAT: Fix ejabberd chopness by resetting the send function
84 compat_check = true; 83 if not origin.from_host then
84 origin.log("debug", "We need to know where to connect but remote server blindly refuses to tell us and to comply to specs, closing connection.");
85 origin:close("invalid-from");
86 else
87 origin.log("debug", "Remote server didn't specify a from attr, resetting session.send now that we know where to knock to.");
88 origin.send = function(stanza) hosts[attr.to].events.fire_event("route/remote", { from_host = origin.to_host, to_host = origin.from_host, stanza = stanza}); end
89 end
85 end 90 end
86 if not origin.to_host then 91 if not origin.to_host then
87 -- Just used for friendlier logging 92 -- Just used for friendlier logging
88 origin.to_host = nameprep(attr.to); 93 origin.to_host = attr.to;
89 -- COMPAT: Fix server's chopness by not including to
90 compat_check = true;
91 end
92
93 if not origin.from_host and not origin.to_host then
94 origin.log("debug", "Improper addressing supplied, no to or from?");
95 origin:close("improper-addressing");
96 end
97 -- COMPAT: reset session.send
98 if compat_check then
99 origin.send = function(stanza) hosts[attr.to].events.fire_event("route/remote", { from_host = origin.to_host, to_host = origin.from_host, stanza = stanza}); end
100 end 94 end
101 95
102 origin.log("debug", "asking %s if key %s belongs to them", attr.from, stanza[1]); 96 origin.log("debug", "asking %s if key %s belongs to them", attr.from, stanza[1]);
103 origin.send(st.stanza("db:verify", { from = attr.to, to = attr.from, id = origin.streamid }):text(stanza[1])); 97 origin.send(st.stanza("db:verify", { from = attr.to, to = attr.from, id = origin.streamid }):text(stanza[1]));
104 return true; 98 return true;