mod_c2s, mod_s2s, mod_component, util.xmppstream: Move all session:open_stream()...
authorKim Alvefur <zash@zash.se>
Thu, 10 Apr 2014 11:13:07 +0000 (13:13 +0200)
committerKim Alvefur <zash@zash.se>
Thu, 10 Apr 2014 11:13:07 +0000 (13:13 +0200)
plugins/mod_c2s.lua
plugins/mod_component.lua
plugins/mod_s2s/mod_s2s.lua
util/xmppstream.lua

index 7a8af406acdd6b3fe2a5710bea28338365c08d36..f0cdd7fb1044a71952d48597387d91f50bd98575 100644 (file)
@@ -174,19 +174,6 @@ local function session_close(session, reason)
        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 @@ function listener.onconnect(conn)
                conn:setoption("keepalive", opt_keepalives);
        end
 
-       session.open_stream = session_open_stream;
        session.close = session_close;
 
        local stream = new_xmpp_stream(session, stream_callbacks);
index 1497b12fc6a0096661aae5e1345cab9f25c4be52..297609d830d1a55ffab5c797477cef2c9e83fd19 100644 (file)
@@ -177,9 +177,7 @@ function stream_callbacks.streamopened(session, attr)
        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)
index 5531ca3e1b4b90f4c71e70ffe16588b3314048e4..d27f50af33a88e243e2533f14a84cedccda5652b 100644 (file)
@@ -510,24 +510,6 @@ local function session_close(session, reason, remote_reason)
        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 @@ local function initialize_session(session)
                session.stream:reset();
        end
 
-       session.open_stream = session_open_stream;
-
        local filter = session.filter;
        function session.data(data)
                data = filter("bytes/in", data);
index 586ad5f94a4cdaede7ae18b3fcbea3f99a700e69..1e65919baa62b5248c49b6a205b68606def8775a 100644 (file)
@@ -241,6 +241,22 @@ function new(session, stream_callbacks, stanza_size_limit)
        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);