From c3eb56a6e045b7105739ac51ca2ffe9de0a1c7f1 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Sat, 16 Aug 2008 06:07:11 +0000 Subject: [PATCH] (libT) some more peer connection management: (1) reset `numFails' to zero after a successful connect (2) tweak the reconnect intervals a bit --- libtransmission/peer-mgr.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/libtransmission/peer-mgr.c b/libtransmission/peer-mgr.c index 6531de331..64e3d7d23 100644 --- a/libtransmission/peer-mgr.c +++ b/libtransmission/peer-mgr.c @@ -1009,6 +1009,7 @@ myHandshakeDoneCB( tr_handshake * handshake, peer->io = io; peer->msgs = tr_peerMsgsNew( t->tor, peer, peerCallbackFunc, t, &peer->msgsTag ); atom->time = time( NULL ); + atom->numFails = 0; } } } @@ -1758,19 +1759,19 @@ compareCandidates( const void * va, const void * vb ) static int getReconnectIntervalSecs( const struct peer_atom * atom ) { - int min; + int sec; switch( atom->numFails ) { - case 0: - case 1: min = 7; break; - case 2: min = 15; break; - case 3: min = 30; break; - case 4: min = 60; break; - default: min = 120; break; + case 0: sec = 0; break; + case 1: sec = 30; break; + case 2: sec = 15*60; break; + case 3: sec = 30*60; break; + case 4: sec = 60*60; break; + default: sec = 120*60; break; } - return min * 60; + return sec; } static struct peer_atom ** @@ -1880,6 +1881,7 @@ reconnectPulse( void * vtorrent ) atom->numFails = 0; else ++atom->numFails; + tordbg( t, "removing bad peer %s", tr_peerIoGetAddrStr( peer->io ) ); removePeer( t, peer ); }