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 |
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 session.log("info", "Client disconnected: %s", err); |
85 (session.log or log)("info", "Client disconnected: %s", err); |
86 sm_destroy_session(session); |
86 sm_destroy_session(session); |
87 sessions[conn] = nil; |
87 sessions[conn] = nil; |
88 session = nil; |
88 session = nil; |
89 collectgarbage("collect"); |
89 collectgarbage("collect"); |
90 end |
90 end |