From 5166d2def025a4fb1e3c4a723d90dc82669b36ee Mon Sep 17 00:00:00 2001
From: Kevin Smith <git@kismith.co.uk>
Date: Fri, 1 Oct 2010 10:54:23 +0100
Subject: Don't loop when searching a server that has the same JID with
 different nodes.

Resolves: #356

diff --git a/Swift/Controllers/Chat/MUCSearchController.cpp b/Swift/Controllers/Chat/MUCSearchController.cpp
index 93d2087..304de85 100644
--- a/Swift/Controllers/Chat/MUCSearchController.cpp
+++ b/Swift/Controllers/Chat/MUCSearchController.cpp
@@ -136,7 +136,12 @@ void MUCSearchController::handleServerItemsResponse(boost::shared_ptr<DiscoItems
 		removeService(jid);
 	}
 	foreach (DiscoItems::Item item, items->getItems()) {
-		handleAddService(item.getJID());
+		if (item.getNode().isEmpty()) {
+			/* Don't look at noded items. It's possible that this will exclude some services,
+			 * but I've never seen one in the wild, and it's an easy fix for not looping.
+			 */
+			handleAddService(item.getJID());
+		}
 	}
 	refreshView();
 }
-- 
cgit v0.10.2-6-g49f6