diff options
author | erdgeist <> | 2007-01-25 14:16:26 +0000 |
---|---|---|
committer | erdgeist <> | 2007-01-25 14:16:26 +0000 |
commit | dffea5da69b19c6812700839885c9997e73db7ec (patch) | |
tree | b437d73856aa62608dc6cc35dd6f7b94b888e543 | |
parent | 2f0658a3afa65847c11612bd28a65c8c9cbc8725 (diff) |
return random check back intervals to our clients
-rw-r--r-- | opentracker.c | 7 | ||||
-rw-r--r-- | trackerlogic.c | 2 | ||||
-rw-r--r-- | trackerlogic.h | 8 |
3 files changed, 11 insertions, 6 deletions
diff --git a/opentracker.c b/opentracker.c index eea02eb..403fa21 100644 --- a/opentracker.c +++ b/opentracker.c | |||
@@ -26,9 +26,6 @@ | |||
26 | #include "trackerlogic.h" | 26 | #include "trackerlogic.h" |
27 | #include "scan_urlencoded_query.h" | 27 | #include "scan_urlencoded_query.h" |
28 | 28 | ||
29 | unsigned int const OT_CLIENT_TIMEOUT = 30; | ||
30 | unsigned int const OT_CLIENT_TIMEOUT_CHECKINTERVAL = 5; | ||
31 | |||
32 | static unsigned int ot_overall_connections = 0; | 29 | static unsigned int ot_overall_connections = 0; |
33 | static unsigned int ot_overall_successfulannounces = 0; | 30 | static unsigned int ot_overall_successfulannounces = 0; |
34 | static time_t ot_start_time; | 31 | static time_t ot_start_time; |
@@ -346,7 +343,7 @@ e400_param: | |||
346 | 343 | ||
347 | if( OT_FLAG( &peer ) & PEER_FLAG_STOPPED ) { | 344 | if( OT_FLAG( &peer ) & PEER_FLAG_STOPPED ) { |
348 | remove_peer_from_torrent( hash, &peer ); | 345 | remove_peer_from_torrent( hash, &peer ); |
349 | memmove( static_scratch + SUCCESS_HTTP_HEADER_LENGTH, "d8:completei0e10:incompletei0e8:intervali1800e5:peers0:e", reply_size = 56 ); | 346 | reply_size = sprintf( static_scratch + SUCCESS_HTTP_HEADER_LENGTH, "d8:completei0e10:incompletei0e8:intervali%ie5:peers0:e", OT_CLIENT_REQUEST_INTERVAL_RANDOM ); |
350 | } else { | 347 | } else { |
351 | torrent = add_peer_to_torrent( hash, &peer ); | 348 | torrent = add_peer_to_torrent( hash, &peer ); |
352 | if( !torrent ) { | 349 | if( !torrent ) { |
@@ -511,7 +508,7 @@ void handle_accept( int64 serversocket ) { | |||
511 | while( ( i = socket_accept4( serversocket, (char*)ip, &port) ) != -1 ) { | 508 | while( ( i = socket_accept4( serversocket, (char*)ip, &port) ) != -1 ) { |
512 | 509 | ||
513 | if( !io_fd( i ) || | 510 | if( !io_fd( i ) || |
514 | !( h = (struct http_data*)malloc( sizeof struct http_data ) ) ) { | 511 | !( h = (struct http_data*)malloc( sizeof( struct http_data ) ) ) ) { |
515 | io_close( i ); | 512 | io_close( i ); |
516 | continue; | 513 | continue; |
517 | } | 514 | } |
diff --git a/trackerlogic.c b/trackerlogic.c index ea9b929..4de5038 100644 --- a/trackerlogic.c +++ b/trackerlogic.c | |||
@@ -253,7 +253,7 @@ size_t return_peers_for_torrent( ot_torrent *torrent, unsigned int amount, char | |||
253 | } | 253 | } |
254 | if( peer_count < amount ) amount = peer_count; | 254 | if( peer_count < amount ) amount = peer_count; |
255 | 255 | ||
256 | r += sprintf( r, "d8:completei%ie10:incompletei%ie8:intervali1800e5:peers%i:", seed_count, peer_count-seed_count, 6*amount ); | 256 | r += sprintf( r, "d8:completei%ie10:incompletei%ie8:intervali%ie5:peers%i:", seed_count, peer_count-seed_count, OT_CLIENT_REQUEST_INTERVAL_RANDOM, 6*amount ); |
257 | if( amount ) { | 257 | if( amount ) { |
258 | unsigned int pool_offset, pool_index = 0;; | 258 | unsigned int pool_offset, pool_index = 0;; |
259 | unsigned int shifted_pc = peer_count; | 259 | unsigned int shifted_pc = peer_count; |
diff --git a/trackerlogic.h b/trackerlogic.h index b047d7d..8a61b74 100644 --- a/trackerlogic.h +++ b/trackerlogic.h | |||
@@ -18,6 +18,14 @@ typedef ot_byte ot_hash[20]; | |||
18 | typedef ot_dword ot_ip; | 18 | typedef ot_dword ot_ip; |
19 | typedef time_t ot_time; | 19 | typedef time_t ot_time; |
20 | 20 | ||
21 | /* Some tracker behaviour tunable */ | ||
22 | #define OT_CLIENT_TIMEOUT 30 | ||
23 | #define OT_CLIENT_TIMEOUT_CHECKINTERVAL 5 | ||
24 | #define OT_CLIENT_REQUEST_INTERVAL 1800 | ||
25 | #define OT_CLIENT_REQUEST_VARIATION 180 | ||
26 | |||
27 | #define OT_CLIENT_REQUEST_INTERVAL_RANDOM ( OT_CLIENT_REQUEST_INTERVAL + (int)( random( ) % OT_CLIENT_REQUEST_VARIATION ) ) | ||
28 | |||
21 | /* We maintain a list of 256 pointers to sorted list of ot_torrent structs | 29 | /* We maintain a list of 256 pointers to sorted list of ot_torrent structs |
22 | Sort key is, of course, its hash */ | 30 | Sort key is, of course, its hash */ |
23 | 31 | ||