Selaa lähdekoodia

2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Run PeerLookupTask more frequently when the number of peer is low.
	* src/DHTGetPeersCommand.cc
	* src/DHTGetPeersCommand.h
Tatsuhiro Tsujikawa 15 vuotta sitten
vanhempi
commit
9d58a5cefb
3 muutettua tiedostoa jossa 12 lisäystä ja 1 poistoa
  1. 6 0
      ChangeLog
  2. 4 1
      src/DHTGetPeersCommand.cc
  3. 2 0
      src/DHTGetPeersCommand.h

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+2010-08-29  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Run PeerLookupTask more frequently when the number of peer is low.
+	* src/DHTGetPeersCommand.cc
+	* src/DHTGetPeersCommand.h
+
 2010-08-29  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Drop connection when bad ut_metadata is received..

+ 4 - 1
src/DHTGetPeersCommand.cc

@@ -79,7 +79,10 @@ bool DHTGetPeersCommand::execute()
   if(task_.isNull() &&
      ((numRetry_ > 0 &&
        lastGetPeerTime_.difference(global::wallclock) >= (time_t)numRetry_*5) ||
-      lastGetPeerTime_.difference(global::wallclock) >= GET_PEER_INTERVAL)) {
+      lastGetPeerTime_.difference(global::wallclock) >= GET_PEER_INTERVAL ||
+      (btRuntime_->lessThanMinPeers() &&
+       lastGetPeerTime_.difference(global::wallclock) >= GET_PEER_MIN_INTERVAL
+       && !requestGroup_->downloadFinished()))) {
     if(getLogger()->debug()) {
       getLogger()->debug("Issuing PeerLookup for infoHash=%s",
                          bittorrent::getInfoHashString

+ 2 - 0
src/DHTGetPeersCommand.h

@@ -54,6 +54,8 @@ class DHTGetPeersCommand:public Command {
 private:
   static const time_t GET_PEER_INTERVAL = (15*60);
 
+  static const time_t GET_PEER_MIN_INTERVAL = (5*60);
+
   static const size_t MAX_RETRIES = 10;
 
   RequestGroup* requestGroup_;