diff --git a/ChangeLog b/ChangeLog index c3543472..de850bd2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-03-05 Tatsuhiro Tsujikawa + + Changed inactive connection timeout to 120. + To accept more mulually interested peers, disconnect peer when there + is no interest between us after certain time passed. + * src/DefaultBtInteractive.cc (checkActiveInteraction) + 2008-03-05 Tatsuhiro Tsujikawa Fixed the bug that aria2 only uses first dns server in resolv.conf diff --git a/src/DefaultBtInteractive.cc b/src/DefaultBtInteractive.cc index ecbc1cb6..51309b2d 100644 --- a/src/DefaultBtInteractive.cc +++ b/src/DefaultBtInteractive.cc @@ -361,9 +361,24 @@ void DefaultBtInteractive::detectMessageFlooding() { void DefaultBtInteractive::checkActiveInteraction() { - int32_t interval = 5*60; - if(inactiveCheckPoint.elapsed(interval)) { - throw new DlAbortEx(EX_DROP_INACTIVE_CONNECTION, interval); + // To allow aria2 to accept mutially interested peer, disconnect unintersted + // peer. + { + time_t interval = 30; + if(!peer->amInterested() && !peer->peerInterested() && + inactiveCheckPoint.elapsed(interval)) { + // TODO change the message + throw new DlAbortEx("Disconnect peer because we are not interested each other after %u second(s).", interval); + } + } + // Since the peers which are *just* connected and do nothing to improve + // mutual download progress are completely waste of resources, those peers + // are disconnected in a certain time period. + { + time_t interval = 2*60; + if(inactiveCheckPoint.elapsed(interval)) { + throw new DlAbortEx(EX_DROP_INACTIVE_CONNECTION, interval); + } } }