# HG changeset patch # User Matthew Wild # Date 1227071272 0 # Node ID c6446bbfe40c03b1c2565b0f1b2cc379a50b325c # Parent 804f5e62a41f8cb38f031ddb65c14129664f8041 Fix sending of unavailable presence on disconnect diff -r 804f5e62a41f -r c6446bbfe40c core/sessionmanager.lua --- a/core/sessionmanager.lua Wed Nov 19 05:02:13 2008 +0000 +++ b/core/sessionmanager.lua Wed Nov 19 05:07:52 2008 +0000 @@ -14,6 +14,8 @@ local uuid_generate = require "util.uuid".generate; local rm_load_roster = require "core.rostermanager".load_roster; +local st = require "util.stanza"; + local newproxy = newproxy; local getmetatable = getmetatable; @@ -33,13 +35,13 @@ return session; end -function destroy_session(session) +function destroy_session(session, err) (session.log or log)("info", "Destroying session"); -- Send unavailable presence if session.presence then local pres = st.presence{ type = "unavailable" }; - if err == "closed" then err = "connection closed"; end + if (not err) or err == "closed" then err = "connection closed"; end pres:tag("status"):text("Disconnected: "..err); session.stanza_dispatch(pres); end