Changeset

6063:e626ee2fe106

mod_c2s, mod_s2s, mod_component, util.xmppstream: Move all session:open_stream() functions to util.xmppstream
author Kim Alvefur <zash@zash.se>
date Thu, 10 Apr 2014 13:13:07 +0200
parents 6062:6cc6b4d407df
children 6067:dab7ad6fa23c
files plugins/mod_c2s.lua plugins/mod_component.lua plugins/mod_s2s/mod_s2s.lua util/xmppstream.lua
diffstat 4 files changed, 17 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_c2s.lua	Thu Apr 10 00:24:29 2014 +0200
+++ b/plugins/mod_c2s.lua	Thu Apr 10 13:13:07 2014 +0200
@@ -174,19 +174,6 @@
 	end
 end
 
-local function session_open_stream(session)
-	local attr = {
-		["xmlns:stream"] = 'http://etherx.jabber.org/streams',
-		xmlns = stream_callbacks.default_ns,
-		version = "1.0",
-		["xml:lang"] = 'en',
-		id = session.streamid or "",
-		from = session.host
-	};
-	session.send("<?xml version='1.0'?>");
-	session.send(st.stanza("stream:stream", attr):top_tag());
-end
-
 module:hook_global("user-deleted", function(event)
 	local username, host = event.username, event.host;
 	local user = hosts[host].sessions[username];
@@ -234,7 +221,6 @@
 		conn:setoption("keepalive", opt_keepalives);
 	end
 
-	session.open_stream = session_open_stream;
 	session.close = session_close;
 
 	local stream = new_xmpp_stream(session, stream_callbacks);
--- a/plugins/mod_component.lua	Thu Apr 10 00:24:29 2014 +0200
+++ b/plugins/mod_component.lua	Thu Apr 10 13:13:07 2014 +0200
@@ -177,9 +177,7 @@
 	session.streamid = uuid_gen();
 	session.notopen = nil;
 	-- Return stream header
-	session.send("<?xml version='1.0'?>");
-	session.send(st.stanza("stream:stream", { xmlns=xmlns_component,
-			["xmlns:stream"]='http://etherx.jabber.org/streams', id=session.streamid, from=session.host }):top_tag());
+	session:open_stream();
 end
 
 function stream_callbacks.streamclosed(session)
--- a/plugins/mod_s2s/mod_s2s.lua	Thu Apr 10 00:24:29 2014 +0200
+++ b/plugins/mod_s2s/mod_s2s.lua	Thu Apr 10 13:13:07 2014 +0200
@@ -510,24 +510,6 @@
 	end
 end
 
-function session_open_stream(session, from, to)
-	local attr = {
-		["xmlns:stream"] = 'http://etherx.jabber.org/streams',
-		xmlns = 'jabber:server',
-		version = session.version and (session.version > 0 and "1.0" or nil),
-		["xml:lang"] = 'en',
-		id = session.streamid,
-		from = from, to = to,
-	}
-	if not from or (hosts[from] and hosts[from].modules.dialback) then
-		attr["xmlns:db"] = 'jabber:server:dialback';
-	end
-
-	session.sends2s("<?xml version='1.0'?>");
-	session.sends2s(st.stanza("stream:stream", attr):top_tag());
-	return true;
-end
-
 -- Session initialization logic shared by incoming and outgoing
 local function initialize_session(session)
 	local stream = new_xmpp_stream(session, stream_callbacks);
@@ -540,8 +522,6 @@
 		session.stream:reset();
 	end
 
-	session.open_stream = session_open_stream;
-
 	local filter = session.filter;
 	function session.data(data)
 		data = filter("bytes/in", data);
--- a/util/xmppstream.lua	Thu Apr 10 00:24:29 2014 +0200
+++ b/util/xmppstream.lua	Thu Apr 10 13:13:07 2014 +0200
@@ -241,6 +241,22 @@
 	local parser = new_parser(handlers, ns_separator, false);
 	local parse = parser.parse;
 
+	function session.open_stream(session, from, to)
+		local send = session.sends2s or session.send;
+
+		local attr = {
+			["xmlns:stream"] = "http://etherx.jabber.org/streams",
+			["xml:lang"] = "en",
+			xmlns = stream_callbacks.default_ns,
+			version = session.version and (session.version > 0 and "1.0" or nil),
+			id = session.streamid or "",
+			from = from or session.host, to = to,
+		};
+		send("<?xml version='1.0'?>");
+		send(st.stanza("stream:stream", attr):top_tag());
+		return true;
+	end
+
 	return {
 		reset = function ()
 			parser = new_parser(handlers, ns_separator, false);