aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/mod_s2s/mod_s2s.lua7
-rw-r--r--plugins/mod_s2s/s2sout.lib.lua2
2 files changed, 5 insertions, 4 deletions
diff --git a/plugins/mod_s2s/mod_s2s.lua b/plugins/mod_s2s/mod_s2s.lua
index 8e01a589..f6c20606 100644
--- a/plugins/mod_s2s/mod_s2s.lua
+++ b/plugins/mod_s2s/mod_s2s.lua
@@ -427,8 +427,9 @@ local function initialize_session(session)
end
function listener.onconnect(conn)
- if not sessions[conn] then -- May be an existing outgoing session
- local session = s2s_new_incoming(conn);
+ local session = sessions[conn];
+ if not session then -- New incoming connection
+ session = s2s_new_incoming(conn);
sessions[conn] = session;
session.log("debug", "Incoming s2s connection");
@@ -448,6 +449,8 @@ function listener.onconnect(conn)
end
initialize_session(session);
+ else -- Outgoing session connected
+ session:open_stream(session.from_host, session.to_host);
end
end
diff --git a/plugins/mod_s2s/s2sout.lib.lua b/plugins/mod_s2s/s2sout.lib.lua
index 2ddc9299..94445ea2 100644
--- a/plugins/mod_s2s/s2sout.lib.lua
+++ b/plugins/mod_s2s/s2sout.lib.lua
@@ -314,8 +314,6 @@ function s2sout.make_connect(host_session, connect_host, connect_port)
-- otherwise it will assume it is a new incoming connection
s2s_listener.register_outgoing(conn, host_session);
- host_session:open_stream(from_host, to_host);
-
log("debug", "Connection attempt in progress...");
return true;
end