Changeset 1137
- Timestamp:
- Nov 26, 2006, 4:05:45 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/scrape/libtransmission/tracker.c
r1136 r1137 36 36 37 37 int interval; 38 int minInterval; 38 39 int scrapeInterval; 39 40 int seeders; … … 75 76 76 77 tc->interval = 300; 78 tc->minInterval = 0; 77 79 tc->scrapeInterval = 600; 78 80 tc->seeders = -1; … … 127 129 if( tc->hasManyPeers && !tc->tor->finished ) 128 130 { 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 } 140 158 } 141 159 } … … 462 480 tc->lastAttempt = TC_ATTEMPT_OK; 463 481 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" ); 480 518 } 481 519
Note: See TracChangeset
for help on using the changeset viewer.