xmppserver_listener: When a connection fails, pass the reason to destroy_session
[prosody.git] / net / xmppserver_listener.lua
index 797ef183fe78ce47664b3c60e0ec1825aae56fd0..4394eac50ededa17fb2fa3546a64b362d0136fee 100644 (file)
@@ -104,14 +104,14 @@ local function session_close(session, reason)
                        session.conn.close(true); -- Force FIXME: timer?
                end
                session.conn.close();
-               xmppserver.ondisconnect(session.conn, "stream error");
+               xmppserver.disconnect(session.conn, "stream error");
        end
 end
 
 
 -- End of session methods --
 
-function xmppserver.onincoming(conn, data)
+function xmppserver.listener(conn, data)
        local session = sessions[conn];
        if not session then
                session = s2s_new_incoming(conn);
@@ -148,18 +148,18 @@ function xmppserver.status(conn, status)
        end
 end
 
-function xmppserver.ondisconnect(conn, err)
+function xmppserver.disconnect(conn, err)
        local session = sessions[conn];
        if session then
                if err and err ~= "closed" and session.srv_hosts then
-                       (session.log or log)("debug", "s2s connection closed unexpectedly");
+                       (session.log or log)("debug", "s2s connection attempt failed: %s", err);
                        if s2s_attempt_connect(session, err) then
-                               (session.log or log)("debug", "...so we're going to try again");
+                               (session.log or log)("debug", "...so we're going to try another target");
                                return; -- Session lives for now
                        end
                end
                (session.log or log)("info", "s2s disconnected: %s->%s (%s)", tostring(session.from_host), tostring(session.to_host), tostring(err));
-               s2s_destroy_session(session);
+               s2s_destroy_session(session, err);
                sessions[conn]  = nil;
                session = nil;
                collectgarbage("collect");