(trunk libT) #4526 "do not skip scrape unless all three scrape fields came with announce" -- add field initializers.

This commit is contained in:
Jordan Lee
2011-10-14 00:27:14 +00:00
parent 9c6e686882
commit ed56cd1193
3 changed files with 30 additions and 8 deletions
+8
View File
@@ -291,6 +291,9 @@ tr_tracker_http_announce( tr_session * session,
const char * url = (const char *) evbuffer_pullup( buf, -1 );
d = tr_new0( struct announce_data, 1 );
d->response.seeders = -1;
d->response.leechers = -1;
d->response.downloads = -1;
d->response_func = response_func;
d->response_func_user_data = response_func_user_data;
memcpy( d->response.info_hash, request->info_hash, SHA_DIGEST_LENGTH );
@@ -463,7 +466,12 @@ tr_tracker_http_scrape( tr_session * session,
d->response_func_user_data = response_func_user_data;
d->response.row_count = request->info_hash_count;
for( i=0; i<d->response.row_count; ++i )
{
memcpy( d->response.rows[i].info_hash, request->info_hash[i], SHA_DIGEST_LENGTH );
d->response.rows[i].seeders = -1;
d->response.rows[i].leechers = -1;
d->response.rows[i].downloads = -1;
}
tr_strlcpy( d->log_name, request->log_name, sizeof( d->log_name ) );
dbgmsg( request->log_name, "Sending scrape to libcurl: \"%s\"", url );
+8
View File
@@ -183,8 +183,13 @@ tau_scrape_request_new( const tr_scrape_request * in,
req->payload_len = evbuffer_get_length( buf );
req->payload = tr_memdup( evbuffer_pullup( buf, -1 ), req->payload_len );
for( i=0; i<req->response.row_count; ++i )
{
req->response.rows[i].seeders = -1;
req->response.rows[i].leechers = -1;
req->response.rows[i].downloads = -1;
memcpy( req->response.rows[i].info_hash,
in->info_hash[i], SHA_DIGEST_LENGTH );
}
/* cleanup */
evbuffer_free( buf );
@@ -334,6 +339,9 @@ tau_announce_request_new( const tr_announce_request * in,
req->user_data = user_data;
req->payload_len = evbuffer_get_length( buf );
req->payload = tr_memdup( evbuffer_pullup( buf, -1 ), req->payload_len );
req->response.seeders = -1;
req->response.leechers = -1;
req->response.downloads = -1;
memcpy( req->response.info_hash, in->info_hash, SHA_DIGEST_LENGTH );
evbuffer_free( buf );
+14 -8
View File
@@ -1073,6 +1073,9 @@ on_announce_done( const tr_announce_response * response,
int i;
const char * str;
int scrape_fields = 0;
int seeders = 0;
int leechers = 0;
int downloads = 0;
const bool isStopped = event == TR_ANNOUNCE_EVENT_STOPPED;
publishErrorClear( tier );
@@ -1083,18 +1086,18 @@ on_announce_done( const tr_announce_response * response,
if( response->seeders >= 0 )
{
tracker->seederCount = response->seeders;
tracker->seederCount = seeders = response->seeders;
++scrape_fields;
}
if( response->leechers >= 0 )
{
tracker->leecherCount = response->leechers;
tracker->leecherCount = leechers = response->leechers;
++scrape_fields;
}
if( response->downloads >= 0 )
{
tracker->downloadCount = response->downloads;
tracker->downloadCount = downloads = response->downloads;
++scrape_fields;
}
@@ -1125,11 +1128,11 @@ on_announce_done( const tr_announce_response * response,
tier->announceIntervalSec = i;
if( response->pex_count > 0 )
publishPeersPex( tier, response->seeders, response->leechers,
publishPeersPex( tier, seeders, leechers,
response->pex, response->pex_count );
if( response->pex6_count > 0 )
publishPeersPex( tier, response->seeders, response->leechers,
publishPeersPex( tier, seeders, leechers,
response->pex6, response->pex6_count );
tier->isRunning = data->isRunningOnSuccess;
@@ -1346,9 +1349,12 @@ on_scrape_done( const tr_scrape_response * response, void * vsession )
if(( tracker = tier->currentTracker ))
{
tracker->seederCount = row->seeders;
tracker->leecherCount = row->leechers;
tracker->downloadCount = row->downloads;
if( row->seeders >= 0 )
tracker->seederCount = row->seeders;
if( row->leechers >= 0 )
tracker->leecherCount = row->leechers;
if( row->downloads >= 0 )
tracker->downloadCount = row->downloads;
tracker->downloaderCount = row->downloaders;
tracker->consecutiveFailures = 0;
}