summaryrefslogtreecommitdiff
path: root/src/DHTGetPeersCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-02-07 00:17:44 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-02-07 00:17:44 +0900
commit8eb1de9ef817ea7134a5bf922e64e217fa9993ff (patch)
tree30fe0dfa1b73b7e342db2e88fcdc95123f39617f /src/DHTGetPeersCommand.cc
parent2666bc8170a5d7866acbe3112fdf6a426ef73255 (diff)
Get peers from DHT more frequently when the size of peer list is 0.
Diffstat (limited to 'src/DHTGetPeersCommand.cc')
-rw-r--r--src/DHTGetPeersCommand.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/DHTGetPeersCommand.cc b/src/DHTGetPeersCommand.cc
index 96e2a3e5..f8225d66 100644
--- a/src/DHTGetPeersCommand.cc
+++ b/src/DHTGetPeersCommand.cc
@@ -75,12 +75,13 @@ bool DHTGetPeersCommand::execute()
if(btRuntime_->isHalt()) {
return true;
}
+ time_t elapsed = lastGetPeerTime_.difference(global::wallclock);
if(!task_ &&
- ((numRetry_ > 0 &&
- lastGetPeerTime_.difference(global::wallclock) >= (time_t)numRetry_*5) ||
- lastGetPeerTime_.difference(global::wallclock) >= GET_PEER_INTERVAL ||
- (btRuntime_->lessThanMinPeers() &&
- lastGetPeerTime_.difference(global::wallclock) >= GET_PEER_MIN_INTERVAL
+ ((numRetry_ > 0 && elapsed >= static_cast<time_t>(numRetry_*5)) ||
+ elapsed >= GET_PEER_INTERVAL ||
+ (((btRuntime_->lessThanMinPeers() && 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