summaryrefslogtreecommitdiff
path: root/src/DHTGetPeersCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-02-08 23:39:44 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-02-08 23:39:44 +0900
commitffce1848cae817b6120db432d236daa12eacd266 (patch)
tree9cc4b00ecafe446addc29b7a008da80e6fd89fd6 /src/DHTGetPeersCommand.cc
parentaa4232ca8bc1e632e9bae020188a7521348cf970 (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.cc19
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();
}