fix oops from last commit

This commit is contained in:
Charles Kerr 2007-11-23 03:01:13 +00:00
parent 5ad14e4abc
commit 18b3b388c0
1 changed files with 28 additions and 8 deletions

View File

@ -149,7 +149,6 @@ myDebug( const char * file, int line, const tr_tracker * t, const char * fmt, ..
**** Connections that know how to clean up after themselves
***/
#if 0
static int
freeConnection( void * evcon )
{
@ -165,13 +164,12 @@ connectionClosedCB( struct evhttp_connection * evcon, void * handle )
has played out */
tr_timerNew( handle, freeConnection, evcon, 100 );
}
#endif
static struct evhttp_connection*
getConnection( tr_tracker * t, const char * address, int port )
{
struct evhttp_connection * c = evhttp_connection_new( address, port );
//evhttp_connection_set_closecb( c, connectionClosedCB, t->handle );
evhttp_connection_set_closecb( c, connectionClosedCB, t->handle );
return c;
}
@ -988,6 +986,29 @@ tr_trackerGetCounts( const tr_tracker * t,
*setme_seederCount = t->seederCount;
}
struct request_data
{
tr_tracker * t;
const char * command;
};
static void
sendRequestFromEventThreadImpl( void * vdata )
{
struct request_data * data = vdata;
sendTrackerRequest( data->t, data->command );
tr_free( data );
}
static void
sendRequestFromEventThread( tr_tracker * t, const char * command )
{
struct request_data * data = tr_new( struct request_data, 1 );
data->t = t;
data->command = command;
tr_runInEventThread( t->handle, sendRequestFromEventThreadImpl, data );
}
void
tr_trackerStart( tr_tracker * t )
{
@ -996,30 +1017,29 @@ tr_trackerStart( tr_tracker * t )
if( !t->reannounceTimer && !t->isRunning )
{
t->isRunning = 1;
sendTrackerRequest( t, "started" );
sendRequestFromEventThread( t, "started" );
}
}
void
tr_trackerReannounce( tr_tracker * t )
{
sendTrackerRequest( t, "started" );
sendRequestFromEventThread( t, "started" );
}
void
tr_trackerCompleted( tr_tracker * t )
{
sendTrackerRequest( t, "completed" );
sendRequestFromEventThread( t, "completed" );
}
void
tr_trackerStop( tr_tracker * t )
{
dbgmsg( t, " tr_trackerStop called .... t->isRunning is %d", (int)t->isRunning );
if( t->isRunning )
{
t->isRunning = 0;
sendTrackerRequest( t, "stopped" );
sendRequestFromEventThread( t, "stopped" );
}
}