(trunk libT) #2993 "'Downloaded' much greater than 'Have' or 'Verified'" -- tweak the new throttle code based on slow download feedback from gn0s1s in irc, from Rascal @ http://trac.transmissionbt.com/ticket/2993#comment:29, and from AGSystem @ http://forum.transmissionbt.com/viewtopic.php?p=45631&f=1#p45631
This commit is contained in:
parent
272364d324
commit
3aa3ec7d14
|
@ -2349,10 +2349,37 @@ rechokeDownloads( Torrent * t )
|
||||||
|
|
||||||
/* decide how many peers to be interested in */
|
/* decide how many peers to be interested in */
|
||||||
{
|
{
|
||||||
const int blocks = tr_historyGet( t->tor->blocksSentToClient, now, msec );
|
int blocks = 0;
|
||||||
const int cancels = tr_historyGet( t->tor->cancelsSentToPeer, now, msec );
|
int cancels = 0;
|
||||||
|
|
||||||
if( !cancels && !t->interestedCount )
|
/* Count up how many blocks & cancels each peer has.
|
||||||
|
*
|
||||||
|
* There are two situations where we send out cancels --
|
||||||
|
*
|
||||||
|
* 1. We've got unresponsive peers, which is handled by deciding
|
||||||
|
* -which- peers to be interested in.
|
||||||
|
*
|
||||||
|
* 2. We've hit our bandwidth cap, which is handled by deciding
|
||||||
|
* -how many- peers to be interested in.
|
||||||
|
*
|
||||||
|
* We're working on 2. here, so we need to ignore unresponsive
|
||||||
|
* peers in our calculations lest they confuse Transmission into
|
||||||
|
* think it's hit its bandwidth cap.
|
||||||
|
*/
|
||||||
|
for( i=0; i<peerCount; ++i )
|
||||||
|
{
|
||||||
|
const tr_peer * peer = tr_ptrArrayNth( &t->peers, i );
|
||||||
|
const int b = tr_historyGet( peer->blocksSentToClient, now, msec );
|
||||||
|
const int c = tr_historyGet( peer->cancelsSentToPeer, now, msec );
|
||||||
|
|
||||||
|
if( b == 0 ) /* ignore unresponsive peers, as described above */
|
||||||
|
continue;
|
||||||
|
|
||||||
|
blocks += b;
|
||||||
|
cancels += c;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( !t->interestedCount )
|
||||||
{
|
{
|
||||||
/* this is the torrent's first time to call this function...
|
/* this is the torrent's first time to call this function...
|
||||||
* start off optimistically by allowing interest in many peers */
|
* start off optimistically by allowing interest in many peers */
|
||||||
|
|
Loading…
Reference in New Issue