Changeset 1137


Ignore:
Timestamp:
Nov 26, 2006, 4:05:45 AM (15 years ago)
Author:
livings124
Message:

use min interval when stressing the tracker for peers (don't get excited people, min interval is forced between 10 secs and 5 min just like the regular interval ;))

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/scrape/libtransmission/tracker.c

    r1136 r1137  
    3636
    3737    int            interval;
     38    int            minInterval;
    3839    int            scrapeInterval;
    3940    int            seeders;
     
    7576
    7677    tc->interval = 300;
     78    tc->minInterval = 0;
    7779    tc->scrapeInterval = 600;
    7880    tc->seeders  = -1;
     
    127129    if( tc->hasManyPeers && !tc->tor->finished )
    128130    {
    129         if( tc->tor->peerCount < 5 && now > tc->dateOk + 10000 )
    130         {
    131             return 1;
    132         }
    133         if( tc->tor->peerCount < 10 && now > tc->dateOk + 20000 )
    134         {
    135             return 1;
    136         }
    137         if( tc->tor->peerCount < 15 && now > tc->dateOk + 30000 )
    138         {
    139             return 1;
     131        if ( tc->min_interval )
     132        {
     133            if( tc->tor->peerCount < 20 && now > tc->dateOk + 1000 * tc->minInterval )
     134            {
     135                return 1;
     136            }
     137        }
     138        else if( tc->tor->peerCount < 5 )
     139        {
     140            if( now > tc->dateOk + 1000 * 30 )
     141            {
     142                return 1;
     143            }
     144        }
     145        else if( tc->tor->peerCount < 10 )
     146        {
     147            if( now > tc->dateOk + 1000 * 60 )
     148            {
     149                return 1;
     150            }
     151        }
     152        else if( tc->tor->peerCount < 20 )
     153        {
     154            if( now > tc->dateOk + 1000 * 90 )
     155            {
     156                return 1;
     157            }
    140158        }
    141159    }
     
    462480    tc->lastAttempt = TC_ATTEMPT_OK;
    463481
    464     if( !tc->interval )
    465     {
    466         /* Get the tracker interval, ignore it if it is not between
    467            10 sec and 5 mins */
    468         if( !( beFoo = tr_bencDictFind( &beAll, "interval" ) ) ||
    469             !( beFoo->type & TYPE_INT ) )
    470         {
    471             tr_err( "Tracker: no 'interval' field" );
    472             goto cleanup;
    473         }
    474 
    475         tc->interval = beFoo->val.i;
    476         tc->interval = MIN( tc->interval, 300 );
    477         tc->interval = MAX( 10, tc->interval );
    478 
    479         tr_inf( "Tracker: interval = %d seconds", tc->interval );
     482    /* Get the tracker interval, force to between
     483       10 sec and 5 mins */
     484    if( !( beFoo = tr_bencDictFind( &beAll, "interval" ) ) ||
     485        !( beFoo->type & TYPE_INT ) )
     486    {
     487        tr_err( "Tracker: no 'interval' field" );
     488        goto cleanup;
     489    }
     490
     491    tc->interval = beFoo->val.i;
     492    tr_inf( "Tracker: interval = %d seconds", tc->interval );
     493   
     494    tc->interval = MIN( tc->interval, 300 );
     495    tc->interval = MAX( 10, tc->interval );
     496   
     497    /* Get the tracker minimum interval, force to between
     498       10 sec and 5 mins  */
     499    if( ( beFoo = tr_bencDictFind( &beAll, "min interval" ) ) &&
     500        ( beFoo->type & TYPE_INT ) )
     501    {
     502        tc->minInterval = beFoo->val.i;
     503        tr_inf( "Tracker: min interval = %d seconds", tc->minInterval );
     504       
     505        tc->minInterval = MIN( tc->minInterval, 300 );
     506        tc->minInterval = MAX( 10, tc->minInterval );
     507       
     508        if( tc->interval < tc->minInterval)
     509        {
     510            tc->interval = tc->minInterval;
     511            tr_inf( "Tracker: 'interval' less than 'min interval', use 'min interval'" );
     512        }
     513    }
     514    else
     515    {
     516        tc->minInterval = 0;
     517        tr_inf( "Tracker: no 'min interval' field" );
    480518    }
    481519
Note: See TracChangeset for help on using the changeset viewer.