mod_presence: Send unavailable presence to resources from non-available resources on disconnect

Sun, 05 Jul 2009 20:40:31 +0500

author
Waqas Hussain <waqas20@gmail.com>
date
Sun, 05 Jul 2009 20:40:31 +0500
changeset 1480
93d3295fb064
parent 1479
eef17ebe3ca1
child 1481
6401460891b2
child 1488
0d1aff918303

mod_presence: Send unavailable presence to resources from non-available resources on disconnect

plugins/mod_presence.lua file | annotate | diff | comparison | revisions
--- a/plugins/mod_presence.lua	Sun Jul 05 17:45:44 2009 +0500
+++ b/plugins/mod_presence.lua	Sun Jul 05 20:40:31 2009 +0500
@@ -324,5 +324,14 @@
 		if not(err) or err == "closed" then err = "connection closed"; end
 		pres:tag("status"):text("Disconnected: "..err):up();
 		session:dispatch_stanza(pres);
+	elseif session.directed then
+		local pres = st.presence{ type = "unavailable" };
+		if not(err) or err == "closed" then err = "connection closed"; end
+		pres:tag("status"):text("Disconnected: "..err):up();
+		for jid in pairs(session.directed) do
+			pres.attr.to = jid;
+			core_route_stanza(session, pres);
+		end
+		session.directed = nil;
 	end
 end);

mercurial