net/xmppclient_listener.lua

changeset 123
ebd65feb188c
parent 99
ba08b8a4eeef
child 148
4c0dcd245d34
equal deleted inserted replaced
122:21f8d2175393 123:ebd65feb188c
67 session.data(conn, data); 67 session.data(conn, data);
68 end 68 end
69 end 69 end
70 70
71 function xmppclient.disconnect(conn) 71 function xmppclient.disconnect(conn)
72 local session = sessions[conn];
73 if session then
74 if session.last_presence and session.last_presence.attr.type ~= "unavailable" then
75 local pres = st.presence{ type = "unavailable" };
76 if err == "closed" then err = "connection closed"; end
77 pres:tag("status"):text("Disconnected: "..err);
78 session.stanza_dispatch(pres);
79 end
80 sm_destroy_session(session);
81 sessions[conn] = nil;
82 session = nil;
83 collectgarbage("collect");
84 end
72 end 85 end
73 86
74 connlisteners_register("xmppclient", xmppclient); 87 connlisteners_register("xmppclient", xmppclient);

mercurial