core.presencemanager: Set 'from' attribute on outgoing unavailable directed presences

Thu, 19 Feb 2009 19:00:18 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 19 Feb 2009 19:00:18 +0000
changeset 826
27978a3f2c0c
parent 825
6d619c43e613
child 827
e74045238ee3

core.presencemanager: Set 'from' attribute on outgoing unavailable directed presences

core/presencemanager.lua file | annotate | diff | comparison | revisions
--- a/core/presencemanager.lua	Thu Feb 19 15:18:44 2009 +0000
+++ b/core/presencemanager.lua	Thu Feb 19 19:00:18 2009 +0000
@@ -95,13 +95,16 @@
 		end
 		origin.priority = 0;
 		if stanza.attr.type == "unavailable" then
-			origin.presence = nil;
-			if origin.directed then
-				for jid in pairs(origin.directed) do
-					stanza.attr.to = jid;
-					core_route_stanza(origin, stanza);
-				end
-				origin.directed = nil;
+			origin.presence = nil;
+			if origin.directed then
+				local old_from = stanza.attr.from;
+				stanza.attr.from = origin.full_jid;
+				for jid in pairs(origin.directed) do
+					stanza.attr.to = jid;
+					core_route_stanza(origin, stanza);
+				end
+				stanza.attr.from = old_from;
+				origin.directed = nil;
 			end
 		else
 			origin.presence = stanza;

mercurial