From 1bc78a38185f5edd437adf70428b7927eb3f1616 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Thu, 6 Apr 2006 16:58:20 +0000
Subject: [PATCH] we remove agent even if it doesn't reply. Fixes #1756

---
 src/common/connection.py | 6 ++----
 src/gajim.py             | 2 ++
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/common/connection.py b/src/common/connection.py
index 64225cbcca..2979a327f3 100644
--- a/src/common/connection.py
+++ b/src/common/connection.py
@@ -717,16 +717,14 @@ class Connection(ConnectionHandlers):
 		if iq_obj.getTag('error'):
 			# error, probably not a real agent
 			return
-		self.connection.getRoster().delItem(agent)
 
 	def unsubscribe_agent(self, agent):
 		if not self.connection:
 			return
 		iq = common.xmpp.Iq('set', common.xmpp.NS_REGISTER, to = agent)
 		iq.getTag('query').setTag('remove')
-		self.connection.SendAndCallForResponse(iq, self._continue_unsubscribe,
-			{'agent': agent})
-		return
+		self.connection.send(iq)
+		self.connection.getRoster().delItem(agent)
 
 	def update_contact(self, jid, name, groups):
 		'''update roster item on jabber server'''
diff --git a/src/gajim.py b/src/gajim.py
index be3010db0b..a2e3cb8a97 100755
--- a/src/gajim.py
+++ b/src/gajim.py
@@ -965,6 +965,8 @@ class Interface:
 				#FIXME if it was the only one in its group, remove the group
 				return
 		elif not contacts:
+			if sub == 'remove':
+				return
 			# Add it to roster
 			contact = gajim.contacts.create_contact(jid = jid, name = name,
 			groups = groups, show = 'offline', sub = sub, ask = ask)
-- 
GitLab