Fix logging of disconnect reason, and also sending of unavailable presence on disconnect

Sat, 15 Nov 2008 19:32:58 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Sat, 15 Nov 2008 19:32:58 +0000
changeset 275
7af22e56d625
parent 274
9e68a697435d
child 290
f9b7afd42b67

Fix logging of disconnect reason, and also sending of unavailable presence on disconnect

net/xmppclient_listener.lua file | annotate | diff | comparison | revisions
--- a/net/xmppclient_listener.lua	Sat Nov 15 19:13:28 2008 +0000
+++ b/net/xmppclient_listener.lua	Sat Nov 15 19:32:58 2008 +0000
@@ -73,15 +73,16 @@
 	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;

mercurial