summaryrefslogtreecommitdiff
path: root/src/DHTGetPeersCommand.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/DHTGetPeersCommand.cc')
-rw-r--r--src/DHTGetPeersCommand.cc68
1 files changed, 33 insertions, 35 deletions
diff --git a/src/DHTGetPeersCommand.cc b/src/DHTGetPeersCommand.cc
index da52ce8e..7bd6d477 100644
--- a/src/DHTGetPeersCommand.cc
+++ b/src/DHTGetPeersCommand.cc
@@ -67,17 +67,15 @@ const int MAX_RETRIES = 10;
} // namespace
-DHTGetPeersCommand::DHTGetPeersCommand
-(cuid_t cuid,
- RequestGroup* requestGroup,
- DownloadEngine* e)
- : Command{cuid},
- requestGroup_{requestGroup},
- e_{e},
- taskQueue_{nullptr},
- taskFactory_{nullptr},
- numRetry_{0},
- lastGetPeerTime_{Timer::zero()}
+DHTGetPeersCommand::DHTGetPeersCommand(cuid_t cuid, RequestGroup* requestGroup,
+ DownloadEngine* e)
+ : Command{cuid},
+ requestGroup_{requestGroup},
+ e_{e},
+ taskQueue_{nullptr},
+ taskFactory_{nullptr},
+ numRetry_{0},
+ lastGetPeerTime_{Timer::zero()}
{
requestGroup_->increaseNumCommand();
}
@@ -89,40 +87,39 @@ DHTGetPeersCommand::~DHTGetPeersCommand()
bool DHTGetPeersCommand::execute()
{
- if(btRuntime_->isHalt()) {
+ if (btRuntime_->isHalt()) {
return true;
}
auto elapsed = lastGetPeerTime_.difference(global::wallclock());
- if(!task_ &&
- (elapsed >= GET_PEER_INTERVAL ||
- (((btRuntime_->lessThanMinPeers() &&
- ((numRetry_ && elapsed >= GET_PEER_INTERVAL_RETRY) ||
- elapsed >= GET_PEER_INTERVAL_LOW)) ||
- (btRuntime_->getConnections() == 0 &&
- elapsed >= GET_PEER_INTERVAL_ZERO))
- && !requestGroup_->downloadFinished()))) {
+ if (!task_ && (elapsed >= GET_PEER_INTERVAL ||
+ (((btRuntime_->lessThanMinPeers() &&
+ ((numRetry_ && elapsed >= GET_PEER_INTERVAL_RETRY) ||
+ elapsed >= GET_PEER_INTERVAL_LOW)) ||
+ (btRuntime_->getConnections() == 0 &&
+ elapsed >= GET_PEER_INTERVAL_ZERO)) &&
+ !requestGroup_->downloadFinished()))) {
A2_LOG_DEBUG(fmt("Issuing PeerLookup for infoHash=%s",
- bittorrent::getInfoHashString
- (requestGroup_->getDownloadContext()).c_str()));
- task_ = taskFactory_->createPeerLookupTask
- (requestGroup_->getDownloadContext(),
- e_->getBtRegistry()->getTcpPort(),
- peerStorage_);
+ bittorrent::getInfoHashString(
+ requestGroup_->getDownloadContext()).c_str()));
+ task_ = taskFactory_->createPeerLookupTask(
+ requestGroup_->getDownloadContext(), e_->getBtRegistry()->getTcpPort(),
+ peerStorage_);
taskQueue_->addPeriodicTask2(task_);
- } else if(task_ && task_->finished()) {
+ }
+ else if (task_ && task_->finished()) {
A2_LOG_DEBUG("task finished detected");
lastGetPeerTime_ = global::wallclock();
- if(numRetry_ < MAX_RETRIES &&
- (btRuntime_->getMaxPeers() == 0 ||
- btRuntime_->getMaxPeers() >
- static_cast<int>(peerStorage_->countAllPeer()))) {
+ if (numRetry_ < MAX_RETRIES &&
+ (btRuntime_->getMaxPeers() == 0 ||
+ btRuntime_->getMaxPeers() >
+ static_cast<int>(peerStorage_->countAllPeer()))) {
++numRetry_;
A2_LOG_DEBUG(fmt("Too few peers. peers=%lu, max_peers=%d."
" Try again(%d)",
static_cast<unsigned long>(peerStorage_->countAllPeer()),
- btRuntime_->getMaxPeers(),
- numRetry_));
- } else {
+ btRuntime_->getMaxPeers(), numRetry_));
+ }
+ else {
numRetry_ = 0;
}
task_.reset();
@@ -142,7 +139,8 @@ void DHTGetPeersCommand::setTaskFactory(DHTTaskFactory* taskFactory)
taskFactory_ = taskFactory;
}
-void DHTGetPeersCommand::setBtRuntime(const std::shared_ptr<BtRuntime>& btRuntime)
+void DHTGetPeersCommand::setBtRuntime(
+ const std::shared_ptr<BtRuntime>& btRuntime)
{
btRuntime_ = btRuntime;
}