Send version=1.0 in s2s stream header. Send s2s stream:features when in 1.0 mode.

Wed, 19 Nov 2008 05:13:07 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Wed, 19 Nov 2008 05:13:07 +0000
changeset 345
6a7acfc1c933
parent 344
ed5824e9dd94
child 346
22c8f7d412a1

Send version=1.0 in s2s stream header. Send s2s stream:features when in 1.0 mode.

core/s2smanager.lua file | annotate | diff | comparison | revisions
--- a/core/s2smanager.lua	Wed Nov 19 05:12:21 2008 +0000
+++ b/core/s2smanager.lua	Wed Nov 19 05:13:07 2008 +0000
@@ -160,12 +160,28 @@
 		session.streamid = uuid_gen();
 		print(session, session.from_host, "incoming s2s stream opened");
 		send("<?xml version='1.0'?>");
-		send(stanza("stream:stream", { xmlns='jabber:server', ["xmlns:db"]='jabber:server:dialback', ["xmlns:stream"]='http://etherx.jabber.org/streams', id=session.streamid, from=session.to_host }):top_tag());
+		send(stanza("stream:stream", { version = '1.0', xmlns='jabber:server', ["xmlns:db"]='jabber:server:dialback', ["xmlns:stream"]='http://etherx.jabber.org/streams', id=session.streamid, from=session.to_host }):top_tag());
 		if session.to_host and not hosts[session.to_host] then
 			-- Attempting to connect to a host we don't serve
 			session:close("host-unknown");
 			return;
 		end
+		if session.version >= 1.0 then
+			send(st.stanza("stream:features")
+					:tag("dialback", { xmlns='urn:xmpp:features:dialback' }):tag("optional"):up():up());
+		end
+		--[[
+		local features = {};
+		modulemanager.fire_event("stream-features-s2s", session, features);
+	
+		send("<stream:features>");
+	
+		for _, feature in ipairs(features) do
+			send(tostring(feature));
+		end
+
+		send("</stream:features>");
+		]]
 	elseif session.direction == "outgoing" then
 		-- If we are just using the connection for verifying dialback keys, we won't try and auth it
 		if not attr.id then error("stream response did not give us a streamid!!!"); end
@@ -177,17 +193,6 @@
 			mark_connected(session);
 		end
 	end
-	--[[
-	local features = {};
-	modulemanager.fire_event("stream-features-s2s", session, features);
-	
-	send("<stream:features>");
-	
-	for _, feature in ipairs(features) do
-		send(tostring(feature));
-	end
-
-	send("</stream:features>");]]
 
 	session.notopen = nil;
 end

mercurial