Rex Dieter e8d478e
From e423f2975e501a4bf2757722d028c151de3cb97a Mon Sep 17 00:00:00 2001
Rex Dieter e8d478e
From: Joris Guisson <joris.guisson@gmail.com>
Rex Dieter e8d478e
Date: Thu, 1 Aug 2013 11:13:58 +0200
Rex Dieter e8d478e
Subject: [PATCH] Fix bug causing authenticated peers not to get accepted
Rex Dieter e8d478e
Rex Dieter e8d478e
---
Rex Dieter e8d478e
 ChangeLog                |  3 +++
Rex Dieter e8d478e
 src/peer/peermanager.cpp | 12 +++++++-----
Rex Dieter e8d478e
 2 files changed, 10 insertions(+), 5 deletions(-)
Rex Dieter e8d478e
Rex Dieter e8d478e
diff --git a/ChangeLog b/ChangeLog
Rex Dieter e8d478e
index b672cd7..891590f 100644
Rex Dieter e8d478e
--- a/ChangeLog
Rex Dieter e8d478e
+++ b/ChangeLog
Rex Dieter e8d478e
@@ -1,3 +1,6 @@
Rex Dieter e8d478e
+Changes in 1.3.2:
Rex Dieter e8d478e
+- Fix bug causing authenticated peers not to get accepted
Rex Dieter e8d478e
+
Rex Dieter e8d478e
 Changes in 1.3.1:
Rex Dieter e8d478e
 - Add workaround for broken handling of btrfs subvolumes by solid (306825)
Rex Dieter e8d478e
 - Fix crash when preallocating diskspace when a file is enabled during the download of a torrent (307178) 
Rex Dieter e8d478e
diff --git a/src/peer/peermanager.cpp b/src/peer/peermanager.cpp
Rex Dieter e8d478e
index 33b8ce3..48eb868 100644
Rex Dieter e8d478e
--- a/src/peer/peermanager.cpp
Rex Dieter e8d478e
+++ b/src/peer/peermanager.cpp
Rex Dieter e8d478e
@@ -221,12 +221,14 @@ namespace bt
Rex Dieter e8d478e
 			return;
Rex Dieter e8d478e
 		
Rex Dieter e8d478e
 		ConnectionLimit::Token::Ptr token = climit.acquire(d->tor.getInfoHash());
Rex Dieter e8d478e
-		if(!token && d->killBadPeer())
Rex Dieter e8d478e
-		{
Rex Dieter e8d478e
+		if(!token)
Rex Dieter e8d478e
+        {
Rex Dieter e8d478e
+            d->killBadPeer();
Rex Dieter e8d478e
 			token = climit.acquire(d->tor.getInfoHash());
Rex Dieter e8d478e
-			if(token)
Rex Dieter e8d478e
-				d->createPeer(sock, peer_id, support, false, token);
Rex Dieter e8d478e
-		}
Rex Dieter e8d478e
+        }
Rex Dieter e8d478e
+		
Rex Dieter e8d478e
+		if(token)
Rex Dieter e8d478e
+			d->createPeer(sock, peer_id, support, false, token);
Rex Dieter e8d478e
 	}
Rex Dieter e8d478e
 
Rex Dieter e8d478e
 	void PeerManager::peerAuthenticated(bt::Authenticate* auth, bt::PeerConnector::WPtr pcon, bool ok, bt::ConnectionLimit::Token::Ptr token)
Rex Dieter e8d478e
-- 
Rex Dieter e8d478e
1.9.3
Rex Dieter e8d478e