summaryrefslogtreecommitdiff
path: root/src/PeerReceiveHandshakeCommand.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/PeerReceiveHandshakeCommand.cc')
-rw-r--r--src/PeerReceiveHandshakeCommand.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/PeerReceiveHandshakeCommand.cc b/src/PeerReceiveHandshakeCommand.cc
index 48d26b1f..b93e049d 100644
--- a/src/PeerReceiveHandshakeCommand.cc
+++ b/src/PeerReceiveHandshakeCommand.cc
@@ -138,8 +138,10 @@ bool PeerReceiveHandshakeCommand::executeInternal()
if((!pieceStorage->downloadFinished() &&
stat.calculateDownloadSpeed() < thresholdSpeed) ||
btRuntime->lessThanMaxPeers()) {
- if(peerStorage->addPeer(getPeer())) {
- getPeer()->usedBy(getCuid());
+ // TODO addPeer and checkoutPeer must be "atomic", in a sense
+ // that the added peer must be checked out.
+ if(peerStorage->addPeer(getPeer()) &&
+ peerStorage->checkoutPeer(getCuid())) {
PeerInteractionCommand* command =
new PeerInteractionCommand
(getCuid(),