From 74b82c44e8879d3cd28defd95b14e169f460643d Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Wed, 5 Mar 2008 15:31:09 +0000 Subject: [PATCH] 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) --- ChangeLog | 7 +++++++ src/DefaultBtInteractive.cc | 21 ++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) 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); + } } }