diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-02-08 23:39:44 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-02-08 23:39:44 +0900 |
| commit | ffce1848cae817b6120db432d236daa12eacd266 (patch) | |
| tree | 9cc4b00ecafe446addc29b7a008da80e6fd89fd6 /src/DHTGetPeersCommand.cc | |
| parent | aa4232ca8bc1e632e9bae020188a7521348cf970 (diff) | |
Don't retry peer lookup.
We can handle shortage of peer by short interval.
Diffstat (limited to 'src/DHTGetPeersCommand.cc')
| -rw-r--r-- | src/DHTGetPeersCommand.cc | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/DHTGetPeersCommand.cc b/src/DHTGetPeersCommand.cc index f8225d66..26bbd1eb 100644 --- a/src/DHTGetPeersCommand.cc +++ b/src/DHTGetPeersCommand.cc @@ -52,6 +52,16 @@ namespace aria2 { +namespace { + +const time_t GET_PEER_INTERVAL = (15*60); +// Interval when the size of peer list is low. +const time_t GET_PEER_INTERVAL_LOW = (5*60); +// Interval when the peer list is empty. +const time_t GET_PEER_INTERVAL_ZERO = 60; + +} // namespace + DHTGetPeersCommand::DHTGetPeersCommand (cuid_t cuid, RequestGroup* requestGroup, @@ -59,7 +69,6 @@ DHTGetPeersCommand::DHTGetPeersCommand : Command(cuid), requestGroup_(requestGroup), e_(e), - numRetry_(0), lastGetPeerTime_(0) { requestGroup_->increaseNumCommand(); @@ -77,8 +86,7 @@ bool DHTGetPeersCommand::execute() } time_t elapsed = lastGetPeerTime_.difference(global::wallclock); if(!task_ && - ((numRetry_ > 0 && elapsed >= static_cast<time_t>(numRetry_*5)) || - elapsed >= GET_PEER_INTERVAL || + (elapsed >= GET_PEER_INTERVAL || (((btRuntime_->lessThanMinPeers() && elapsed >= GET_PEER_INTERVAL_LOW) || (btRuntime_->getConnections() == 0 && elapsed >= GET_PEER_INTERVAL_ZERO)) @@ -91,11 +99,6 @@ bool DHTGetPeersCommand::execute() taskQueue_->addPeriodicTask2(task_); } else if(task_ && task_->finished()) { lastGetPeerTime_ = global::wallclock; - if(numRetry_ < MAX_RETRIES && btRuntime_->lessThanMinPeers()) { - ++numRetry_; - } else { - numRetry_ = 0; - } task_.reset(); } |
