Merge 0.9->0.10
[prosody.git] / core / s2smanager.lua
index b034fcaeeb33161f95d359143cf28aade2189b86..59c1831b5eea054805283ea4c8339243523aa461 100644 (file)
@@ -1,16 +1,16 @@
 -- Prosody IM
 -- Copyright (C) 2008-2010 Matthew Wild
 -- Copyright (C) 2008-2010 Waqas Hussain
--- 
+--
 -- This project is MIT/X11 licensed. Please see the
 -- COPYING file in the source package for more information.
 --
 
 
 
-local hosts = hosts;
-local tostring, pairs, getmetatable, newproxy, setmetatable
-    = tostring, pairs, getmetatable, newproxy, setmetatable;
+local hosts = prosody.hosts;
+local tostring, pairs, setmetatable
+    = tostring, pairs, setmetatable;
 
 local logger_init = require "util.logger".init;
 
@@ -24,21 +24,14 @@ local fire_event = prosody.events.fire_event;
 
 module "s2smanager"
 
-local open_sessions = 0;
-
 function new_incoming(conn)
        local session = { conn = conn, type = "s2sin_unauthed", direction = "incoming", hosts = {} };
-       if true then
-               session.trace = newproxy(true);
-               getmetatable(session.trace).__gc = function () open_sessions = open_sessions - 1; end;
-       end
-       open_sessions = open_sessions + 1;
        session.log = logger_init("s2sin"..tostring(session):match("[a-f0-9]+$"));
        incoming_s2s[session] = true;
        return session;
 end
 
-function new_outgoing(from_host, to_host, connect)
+function new_outgoing(from_host, to_host)
        local host_session = { to_host = to_host, from_host = from_host, host = from_host,
                               notopen = true, type = "s2sout_unauthed", direction = "outgoing" };
        hosts[from_host].s2sout[to_host] = host_session;
@@ -62,7 +55,7 @@ local resting_session = { -- Resting, not dead
 function retire_session(session, reason)
        local log = session.log or log;
        for k in pairs(session) do
-               if k ~= "trace" and k ~= "log" and k ~= "id" and k ~= "conn" then
+               if k ~= "log" and k ~= "id" and k ~= "conn" then
                        session[k] = nil;
                end
        end
@@ -77,14 +70,14 @@ end
 function destroy_session(session, reason)
        if session.destroyed then return; end
        (session.log or log)("debug", "Destroying "..tostring(session.direction).." session "..tostring(session.from_host).."->"..tostring(session.to_host)..(reason and (": "..reason) or ""));
-       
+
        if session.direction == "outgoing" then
                hosts[session.from_host].s2sout[session.to_host] = nil;
                session:bounce_sendq(reason);
        elseif session.direction == "incoming" then
                incoming_s2s[session] = nil;
        end
-       
+
        local event_data = { session = session, reason = reason };
        if session.type == "s2sout" then
                fire_event("s2sout-destroyed", event_data);
@@ -97,7 +90,7 @@ function destroy_session(session, reason)
                        hosts[session.to_host].events.fire_event("s2sin-destroyed", event_data);
                end
        end
-       
+
        retire_session(session, reason); -- Clean session until it is GC'd
        return true;
 end