better error reporting in the new tracker code
This commit is contained in:
parent
af833c7593
commit
9cb2dcb63d
|
@ -397,16 +397,20 @@ parseBencResponse( struct evhttp_request * req, benc_val_t * setme )
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static char*
|
||||||
updateAddresses( Tracker * t, const struct evhttp_request * req )
|
updateAddresses( Tracker * t, const struct evhttp_request * req )
|
||||||
{
|
{
|
||||||
int ret = TR_OK;
|
char * ret = NULL;
|
||||||
|
int used = 0, max = 0;
|
||||||
int moveToNextAddress = FALSE;
|
int moveToNextAddress = FALSE;
|
||||||
|
|
||||||
if( !req )
|
if( !req )
|
||||||
{
|
{
|
||||||
tr_inf( "Connecting to %s got a NULL response",
|
tr_sprintf( &ret, &used, &max,
|
||||||
t->addresses[t->addressIndex].announce );
|
"Connecting to %s got a NULL response",
|
||||||
|
t->addresses[t->addressIndex].announce );
|
||||||
|
tr_inf( ret );
|
||||||
|
|
||||||
moveToNextAddress = TRUE;
|
moveToNextAddress = TRUE;
|
||||||
}
|
}
|
||||||
else if( req->response_code == HTTP_OK )
|
else if( req->response_code == HTTP_OK )
|
||||||
|
@ -450,20 +454,17 @@ updateAddresses( Tracker * t, const struct evhttp_request * req )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tr_inf( "Connecting to %s gave error [%s]",
|
tr_sprintf( &ret, &used, &max,
|
||||||
t->addresses[t->addressIndex].announce,
|
"Error connecting: %s",
|
||||||
req->response_code_line );
|
t->addresses[t->addressIndex].announce,
|
||||||
|
req->response_code_line );
|
||||||
|
|
||||||
moveToNextAddress = TRUE;
|
moveToNextAddress = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( moveToNextAddress )
|
if( moveToNextAddress )
|
||||||
{
|
|
||||||
if ( ++t->addressIndex >= t->addressCount )
|
if ( ++t->addressIndex >= t->addressCount )
|
||||||
{
|
|
||||||
t->addressIndex = 0;
|
t->addressIndex = 0;
|
||||||
ret = TR_ERROR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -509,6 +510,7 @@ onTorrentScrapeNow( void * vtor )
|
||||||
static void
|
static void
|
||||||
onScrapeResponse( struct evhttp_request * req, void * vt )
|
onScrapeResponse( struct evhttp_request * req, void * vt )
|
||||||
{
|
{
|
||||||
|
char * errmsg;
|
||||||
Tracker * t = (Tracker*) vt;
|
Tracker * t = (Tracker*) vt;
|
||||||
|
|
||||||
tr_inf( "scrape response from '%s': %s",
|
tr_inf( "scrape response from '%s': %s",
|
||||||
|
@ -596,7 +598,10 @@ onScrapeResponse( struct evhttp_request * req, void * vt )
|
||||||
t->multiscrapeMax = numResponses;
|
t->multiscrapeMax = numResponses;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateAddresses( t, req );
|
if (( errmsg = updateAddresses( t, req ) )) {
|
||||||
|
tr_err( errmsg );
|
||||||
|
tr_free( errmsg );
|
||||||
|
}
|
||||||
|
|
||||||
if( !tr_ptrArrayEmpty( t->scraping ) )
|
if( !tr_ptrArrayEmpty( t->scraping ) )
|
||||||
{
|
{
|
||||||
|
@ -785,6 +790,7 @@ setAnnounceInterval( Tracker * t,
|
||||||
static void
|
static void
|
||||||
onTrackerResponse( struct evhttp_request * req, void * vtor )
|
onTrackerResponse( struct evhttp_request * req, void * vtor )
|
||||||
{
|
{
|
||||||
|
char * errmsg;
|
||||||
Torrent * tor = (Torrent *) vtor;
|
Torrent * tor = (Torrent *) vtor;
|
||||||
const int isStopped = !torrentIsRunning( tor );
|
const int isStopped = !torrentIsRunning( tor );
|
||||||
int reannounceInterval;
|
int reannounceInterval;
|
||||||
|
@ -863,12 +869,10 @@ onTrackerResponse( struct evhttp_request * req, void * vtor )
|
||||||
reannounceInterval = 30 * 1000;
|
reannounceInterval = 30 * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( updateAddresses( tor->tracker, req ) )
|
if (( errmsg = updateAddresses( tor->tracker, req ) )) {
|
||||||
{
|
publishErrorMessage( tor, errmsg );
|
||||||
char buf[1024];
|
tr_err( errmsg );
|
||||||
snprintf( buf, sizeof(buf), "Unable to connect to \"%s\"",
|
tr_free( errmsg );
|
||||||
tor->tracker->primaryAddress );
|
|
||||||
publishErrorMessage( tor, buf );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tor->httpReq = NULL;
|
tor->httpReq = NULL;
|
||||||
|
|
Loading…
Reference in New Issue