mirror of
https://github.com/transmission/transmission.git
synced 2026-05-08 09:39:08 +01:00
(trunk libT) #4526 "do not skip scrape unless all three scrape fields came with announce" -- add field initializers.
This commit is contained in:
@@ -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 );
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user