diff options
Diffstat (limited to 'src/PeerReceiveHandshakeCommand.cc')
| -rw-r--r-- | src/PeerReceiveHandshakeCommand.cc | 6 |
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(), |
