tr_free( t );
}
+/***
+**** PUBLIC
+***/
+
void
tr_trackerFree( tr_tracker * t )
{
- tr_runInEventThread( t->handle, onTrackerFreeNow, t );
+ if( t )
+ tr_runInEventThread( t->handle, onTrackerFreeNow, t );
}
-
-/***
-**** PUBLIC
-***/
-
tr_publisher_tag
tr_trackerSubscribe( tr_tracker * t,
tr_delivery_func func,
tr_trackerUnsubscribe( tr_tracker * t,
tr_publisher_tag tag )
{
- tr_publisherUnsubscribe( t->publisher, tag );
+ if( t )
+ tr_publisherUnsubscribe( t->publisher, tag );
}
const tr_tracker_info *
void
tr_trackerStart( tr_tracker * t )
{
- tr_free( t->peer_id );
- t->peer_id = tr_peerIdNew( );
+ if( t )
+ {
+ tr_free( t->peer_id );
+ t->peer_id = tr_peerIdNew( );
- if( t->isRunning == 0 ) {
- t->isRunning = 1;
- enqueueRequest( t->handle, t, TR_REQ_STARTED );
+ if( t->isRunning == 0 ) {
+ t->isRunning = 1;
+ enqueueRequest( t->handle, t, TR_REQ_STARTED );
+ }
}
}
void
tr_trackerStop( tr_tracker * t )
{
- if( t->isRunning ) {
+ if( t && t->isRunning ) {
t->isRunning = 0;
t->reannounceAt = t->manualAnnounceAllowedAt = 0;
enqueueRequest( t->handle, t, TR_REQ_STOPPED );