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