76 function xmppclient.disconnect(conn) |
76 function xmppclient.disconnect(conn) |
77 local session = sessions[conn]; |
77 local session = sessions[conn]; |
78 if session then |
78 if session then |
79 if session.last_presence and session.last_presence.attr.type ~= "unavailable" then |
79 if session.last_presence and session.last_presence.attr.type ~= "unavailable" then |
80 local pres = st.presence{ type = "unavailable" }; |
80 local pres = st.presence{ type = "unavailable" }; |
81 if err == "closed" then err = "connection closed"; end |
81 if err == "closed" then err = "connection closed"; end --FIXME where did err come from? |
82 pres:tag("status"):text("Disconnected: "..err); |
82 pres:tag("status"):text("Disconnected: "..err); |
83 session.stanza_dispatch(pres); |
83 session.stanza_dispatch(pres); |
84 end |
84 end |
85 sm_destroy_session(session); |
85 sm_destroy_session(session); |
86 sessions[conn] = nil; |
86 sessions[conn] = nil; |