util/discohelper.lua
changeset 539 cbcadb1a6166
parent 519 cccd610a0ef9
child 615 4ae3e81513f3
--- a/util/discohelper.lua	Wed Dec 03 18:06:04 2008 +0000
+++ b/util/discohelper.lua	Thu Dec 04 20:01:57 2008 +0500
@@ -57,20 +57,8 @@
 		elseif query.attr.xmlns == "http://jabber.org/protocol/disco#items" then
 			handlers = self.item_handlers;
 		end
-		local handler = handlers[to]; -- get the handler
-		if not handler then -- if not found then use default handler
-			if to_node then
-				handler = handlers["*defaultnode"];
-			else
-				handler = handlers["*defaulthost"];
-			end
-		end
-		local found; -- to keep track of any handlers found
-		if handler then
-			for _, h in ipairs(handler) do
-				if h(reply, to, from, node) then found = true; end
-			end
-		end
+		local handler;
+		local found; -- to keep track of any handlers found
 		if to_node then -- handlers which get called always
 			handler = handlers["*node"];
 		else
@@ -81,6 +69,19 @@
 				if h(reply, to, from, node) then found = true; end
 			end
 		end
+		handler = handlers[to]; -- get the handler
+		if not handler then -- if not found then use default handler
+			if to_node then
+				handler = handlers["*defaultnode"];
+			else
+				handler = handlers["*defaulthost"];
+			end
+		end
+		if handler then
+			for _, h in ipairs(handler) do
+				if h(reply, to, from, node) then found = true; end
+			end
+		end
 		if found then return reply; end -- return the reply if there was one
 		return st.error_reply(stanza, "cancel", "service-unavailable");
 	end