core/stanza_router.lua

changeset 2624
99b60dc15174
parent 2530
26c1f27eb35d
child 2687
f9bc95aadc26
--- a/core/stanza_router.lua	Fri Feb 12 21:33:22 2010 +0000
+++ b/core/stanza_router.lua	Sat Feb 13 02:55:24 2010 +0500
@@ -124,7 +124,7 @@
 	local node, host, resource = jid_split(to);
 	local to_bare = node and (node.."@"..host) or host; -- bare JID
 
-	local to_type;
+	local to_type, to_self;
 	if node then
 		if resource then
 			to_type = '/full';
@@ -132,6 +132,7 @@
 			to_type = '/bare';
 			if node == origin.username and host == origin.host then
 				stanza.attr.to = nil;
+				to_self = true;
 			end
 		end
 	else
@@ -149,6 +150,7 @@
 	local h = hosts[to_bare] or hosts[host or origin.host];
 	if h then
 		if h.events.fire_event(stanza.name..to_type, event_data) then return; end -- do processing
+		if to_self and h.events.fire_event(stanza.name..'/self', event_data) then return; end -- do processing
 
 		if h.type == "component" then
 			component_handle_stanza(origin, stanza);

mercurial