Fix logging of disconnect reason, and also sending of unavailable presence on disconnect
authorMatthew Wild <mwild1@gmail.com>
Sat, 15 Nov 2008 19:32:58 +0000 (19:32 +0000)
committerMatthew Wild <mwild1@gmail.com>
Sat, 15 Nov 2008 19:32:58 +0000 (19:32 +0000)
net/xmppclient_listener.lua

index 914dd78ee90d94194d92f64441146f4dfe4c81f1..b475237f11ce5e211dc3adb7048ccc2886a77eb7 100644 (file)
@@ -73,15 +73,16 @@ function xmppclient.listener(conn, data)
        end
 end
        
-function xmppclient.disconnect(conn)
+function xmppclient.disconnect(conn, err)
        local session = sessions[conn];
        if session then
-               if session.last_presence and session.last_presence.attr.type ~= "unavailable" then
+               if session.presence and session.presence.attr.type ~= "unavailable" then
                        local pres = st.presence{ type = "unavailable" };
-                       if err == "closed" then err = "connection closed"; end --FIXME where did err come from?
+                       if err == "closed" then err = "connection closed"; end
                        pres:tag("status"):text("Disconnected: "..err);
                        session.stanza_dispatch(pres);
                end
+               session.log("info", "Client disconnected: %s", err);
                sm_destroy_session(session);
                sessions[conn]  = nil;
                session = nil;