Diff

core/stanza_router.lua @ 146:3826ca244eb6 s2s

working outgoing s2s \o/
author Matthew Wild <mwild1@gmail.com>
date Fri, 24 Oct 2008 03:42:26 +0100
parent 145:fbb3a4ff9cf1
child 147:ccebb2720741
line wrap: on
line diff
--- a/core/stanza_router.lua	Fri Oct 24 03:06:55 2008 +0100
+++ b/core/stanza_router.lua	Fri Oct 24 03:42:26 2008 +0100
@@ -13,6 +13,7 @@
 local user_exists = require "core.usermanager".user_exists;
 
 local s2s_verify_dialback = require "core.s2smanager".verify_dialback;
+local s2s_make_authenticated = require "core.s2smanager".make_authenticated;
 local format = string.format;
 local tostring = tostring;
 
@@ -109,6 +110,15 @@
 			end
 			origin.send(format("<db:verify from='%s' to='%s' id='%s' type='%s'>%s</db:verify>", attr.to, attr.from, attr.id, type, stanza[1]));
 		end
+	elseif origin.type == "s2sout_unauthed" then
+		if stanza.name == "result" and stanza.attr.xmlns == "jabber:server:dialback" then
+			if stanza.attr.type == "valid" then
+				s2s_make_authenticated(origin);
+			else
+				-- FIXME
+				error("dialback failed!");
+			end
+		end
 	else
 		log("warn", "Unhandled origin: %s", origin.type);
 	end
@@ -208,6 +218,8 @@
 		end
 	else
 		-- Remote host
+		log("debug", "sending s2s stanza: %s", tostring(stanza));
+		stanza.attr.xmlns = "jabber:server";
 		send_s2s(origin.host, host, stanza);
 	end
 	stanza.attr.to = to; -- reset