core/stanza_router.lua

changeset 264
a296b61baad8
parent 262
8c73fb2ff4a2
child 274
9e68a697435d
--- a/core/stanza_router.lua	Fri Nov 14 17:37:45 2008 +0000
+++ b/core/stanza_router.lua	Fri Nov 14 18:46:00 2008 +0000
@@ -174,16 +174,22 @@
 				stanza.attr.to = nil; -- reset it
 			else
 				log("warn", "Unhandled c2s presence: %s", tostring(stanza));
-				origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error?
+				if stanza.attr.type ~= "error" then
+					origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error?
+				end
 			end
 		else
 			log("warn", "Unhandled c2s stanza: %s", tostring(stanza));
-			origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error?
+			if stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then
+				origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error?
+			end
 		end -- TODO handle other stanzas
 	else
 		log("warn", "Unhandled origin: %s", origin.type);
-		-- s2s stanzas can get here
-		(origin.sends2s or origin.send)(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error?
+		if stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then
+			-- s2s stanzas can get here
+			(origin.sends2s or origin.send)(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error?
+		end
 	end
 end
 

mercurial