Blob Blame History Raw
From e423f2975e501a4bf2757722d028c151de3cb97a Mon Sep 17 00:00:00 2001
From: Joris Guisson <joris.guisson@gmail.com>
Date: Thu, 1 Aug 2013 11:13:58 +0200
Subject: [PATCH] Fix bug causing authenticated peers not to get accepted

---
 ChangeLog                |  3 +++
 src/peer/peermanager.cpp | 12 +++++++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b672cd7..891590f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+Changes in 1.3.2:
+- Fix bug causing authenticated peers not to get accepted
+
 Changes in 1.3.1:
 - Add workaround for broken handling of btrfs subvolumes by solid (306825)
 - Fix crash when preallocating diskspace when a file is enabled during the download of a torrent (307178) 
diff --git a/src/peer/peermanager.cpp b/src/peer/peermanager.cpp
index 33b8ce3..48eb868 100644
--- a/src/peer/peermanager.cpp
+++ b/src/peer/peermanager.cpp
@@ -221,12 +221,14 @@ namespace bt
 			return;
 		
 		ConnectionLimit::Token::Ptr token = climit.acquire(d->tor.getInfoHash());
-		if(!token && d->killBadPeer())
-		{
+		if(!token)
+        {
+            d->killBadPeer();
 			token = climit.acquire(d->tor.getInfoHash());
-			if(token)
-				d->createPeer(sock, peer_id, support, false, token);
-		}
+        }
+		
+		if(token)
+			d->createPeer(sock, peer_id, support, false, token);
 	}
 
 	void PeerManager::peerAuthenticated(bt::Authenticate* auth, bt::PeerConnector::WPtr pcon, bool ok, bt::ConnectionLimit::Token::Ptr token)
-- 
1.9.3