(trunk libT) remove the tr_session argument from the announce/scrape response callbacks
authorJordan Lee <jordan@transmissionbt.com>
Sat, 26 Mar 2011 12:06:04 +0000 (12:06 +0000)
committerJordan Lee <jordan@transmissionbt.com>
Sat, 26 Mar 2011 12:06:04 +0000 (12:06 +0000)
libtransmission/announcer-common.h
libtransmission/announcer-http.c
libtransmission/announcer-udp.c
libtransmission/announcer.c

index 3682024e553f21d5b60b6b6e024ed69b36115e83..42c212b1f3a8e4c9b71d23a3dc4ced7f51956a34 100644 (file)
@@ -96,8 +96,7 @@ typedef struct
 }
 tr_scrape_response;
 
-typedef void tr_scrape_response_func( tr_session                * session,
-                                      const tr_scrape_response  * response,
+typedef void tr_scrape_response_func( const tr_scrape_response  * response,
                                       void                      * user_data );
 
 void tr_tracker_http_scrape( tr_session               * session,
@@ -224,8 +223,7 @@ typedef struct
 }
 tr_announce_response;
 
-typedef void tr_announce_response_func( tr_session                 * session,
-                                        const tr_announce_response * response,
+typedef void tr_announce_response_func( const tr_announce_response * response,
                                         void                       * userdata );
 
 void tr_tracker_http_announce( tr_session                 * session,
index 71cd1611af332b797b1b6f8d9ad6bb6e2ac55889..b329635aa36bc7ce0b93657c4ffdb262f8dc6b05 100644 (file)
@@ -158,7 +158,6 @@ listToPex( tr_benc * peerList, size_t * setme_len )
 
 struct announce_data
 {
-    tr_session * session;
     tr_announce_response response;
     tr_announce_response_func * response_func;
     void * response_func_user_data;
@@ -171,9 +170,7 @@ on_announce_done_eventthread( void * vdata )
     struct announce_data * data = vdata;
 
     if( data->response_func != NULL )
-        data->response_func( data->session,
-                             &data->response,
-                             data->response_func_user_data );
+        data->response_func( &data->response, data->response_func_user_data );
 
     tr_free( data->response.pex6 );
     tr_free( data->response.pex );
@@ -285,7 +282,6 @@ tr_tracker_http_announce( tr_session                 * session,
     char * url = announce_url_new( session, request );
 
     d = tr_new0( struct announce_data, 1 );
-    d->session = session;
     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 );
@@ -304,7 +300,6 @@ tr_tracker_http_announce( tr_session                 * session,
 
 struct scrape_data
 {
-    tr_session * session;
     tr_scrape_response response;
     tr_scrape_response_func * response_func;
     void * response_func_user_data;
@@ -317,9 +312,7 @@ on_scrape_done_eventthread( void * vdata )
     struct scrape_data * data = vdata;
 
     if( data->response_func != NULL )
-        data->response_func( data->session,
-                             &data->response,
-                             data->response_func_user_data );
+        data->response_func( &data->response, data->response_func_user_data );
 
     tr_free( data->response.errmsg );
     tr_free( data->response.url );
@@ -436,7 +429,6 @@ tr_tracker_http_scrape( tr_session               * session,
     char * url = scrape_url_new( request );
 
     d = tr_new0( struct scrape_data, 1 );
-    d->session = session;
     d->response.url = tr_strdup( request->url );
     d->response_func = response_func;
     d->response_func_user_data = response_func_user_data;
index a6c1862dcb31e86cc37ee4d6da732c4720d6ad68..34b622314e80d0e6c1dd60dbc304ddede680264e 100644 (file)
@@ -201,16 +201,14 @@ tau_scrape_request_free( struct tau_scrape_request * req )
 }
 
 static void
-tau_scrape_request_finished( tr_session                       * session,
-                             const struct tau_scrape_request  * request )
+tau_scrape_request_finished( const struct tau_scrape_request  * request )
 {
     if( request->callback != NULL )
-        request->callback( session, &request->response, request->user_data );
+        request->callback( &request->response, request->user_data );
 }
 
 static void
-tau_scrape_request_fail( tr_session                 * session,
-                         struct tau_scrape_request  * request,
+tau_scrape_request_fail( struct tau_scrape_request  * request,
                          bool                         did_connect,
                          bool                         did_timeout,
                          const char                 * errmsg )
@@ -218,12 +216,11 @@ tau_scrape_request_fail( tr_session                 * session,
     request->response.did_connect = did_connect;
     request->response.did_timeout = did_timeout;
     request->response.errmsg = tr_strdup( errmsg );
-    tau_scrape_request_finished( session, request );
+    tau_scrape_request_finished( request );
 }
 
 static void
-on_scrape_response( tr_session                 * session,
-                    struct tau_scrape_request  * request,
+on_scrape_response( struct tau_scrape_request  * request,
                     tau_action_t                 action,
                     struct evbuffer            * buf )
 {
@@ -246,7 +243,7 @@ on_scrape_response( tr_session                 * session,
             row->leechers  = evbuffer_read_ntoh_32( buf );
         }
 
-        tau_scrape_request_finished( session, request );
+        tau_scrape_request_finished( request );
     }
     else
     {
@@ -258,7 +255,7 @@ on_scrape_response( tr_session                 * session,
         else
             errmsg = tr_strdup( _( "Unknown error" ) );
 
-        tau_scrape_request_fail( session, request, true, false, errmsg );
+        tau_scrape_request_fail( request, true, false, errmsg );
         tr_free( errmsg );
     }
 }
@@ -356,16 +353,14 @@ tau_announce_request_free( struct tau_announce_request * req )
 }
 
 static void
-tau_announce_request_finished( tr_session                        * session,
-                               const struct tau_announce_request * request )
+tau_announce_request_finished( const struct tau_announce_request * request )
 {
     if( request->callback != NULL )
-        request->callback( session, &request->response, request->user_data );
+        request->callback( &request->response, request->user_data );
 }
 
 static void
-tau_announce_request_fail( tr_session                   * session,
-                           struct tau_announce_request  * request,
+tau_announce_request_fail( struct tau_announce_request  * request,
                            bool                           did_connect,
                            bool                           did_timeout,
                            const char                   * errmsg )
@@ -373,12 +368,11 @@ tau_announce_request_fail( tr_session                   * session,
     request->response.did_connect = did_connect;
     request->response.did_timeout = did_timeout;
     request->response.errmsg = tr_strdup( errmsg );
-    tau_announce_request_finished( session, request );
+    tau_announce_request_finished( request );
 }
 
 static void
-on_announce_response( tr_session                   * session,
-                      struct tau_announce_request  * request,
+on_announce_response( struct tau_announce_request  * request,
                       tau_action_t                   action,
                       struct evbuffer              * buf )
 {
@@ -397,7 +391,7 @@ on_announce_response( tr_session                   * session,
                                             evbuffer_get_length( buf ),
                                             NULL, 0,
                                             &request->response.pex_count );
-        tau_announce_request_finished( session, request );
+        tau_announce_request_finished( request );
     }
     else
     {
@@ -408,7 +402,7 @@ on_announce_response( tr_session                   * session,
         else
             errmsg = tr_strdup( _( "Unknown error" ) );
 
-        tau_announce_request_fail( session, request, true, false, errmsg );
+        tau_announce_request_fail( request, true, false, errmsg );
         tr_free( errmsg );
     }
 }
@@ -469,7 +463,7 @@ tau_tracker_fail_all( struct tau_tracker  * tracker,
     /* fail all the scrapes */
     reqs = &tracker->scrapes;
     for( i=0, n=tr_ptrArraySize(reqs); i<n; ++i )
-        tau_scrape_request_fail( tracker->session, tr_ptrArrayNth( reqs, i ),
+        tau_scrape_request_fail( tr_ptrArrayNth( reqs, i ),
                                  did_connect, did_timeout, errmsg );
     tr_ptrArrayDestruct( reqs, (PtrArrayForeachFunc)tau_scrape_request_free );
     *reqs = TR_PTR_ARRAY_INIT;
@@ -477,7 +471,7 @@ tau_tracker_fail_all( struct tau_tracker  * tracker,
     /* fail all the announces */
     reqs = &tracker->announces;
     for( i=0, n=tr_ptrArraySize(reqs); i<n; ++i )
-        tau_announce_request_fail( tracker->session, tr_ptrArrayNth( reqs, i ),
+        tau_announce_request_fail( tr_ptrArrayNth( reqs, i ),
                                    did_connect, did_timeout, errmsg );
     tr_ptrArrayDestruct( reqs, (PtrArrayForeachFunc)tau_announce_request_free );
     *reqs = TR_PTR_ARRAY_INIT;
@@ -622,7 +616,7 @@ tau_tracker_timeout_reqs( struct tau_tracker * tracker )
         struct tau_announce_request * req = tr_ptrArrayNth( reqs, i );
         if( cancel_all || ( req->created_at + TAU_REQUEST_TTL < now ) ) {
             dbgmsg( tracker->key, "timeout announce req %p", req );
-            tau_announce_request_fail( tracker->session, req, false, true, NULL );
+            tau_announce_request_fail( req, false, true, NULL );
             tau_announce_request_free( req );
             tr_ptrArrayRemove( reqs, i );
             --i;
@@ -635,7 +629,7 @@ tau_tracker_timeout_reqs( struct tau_tracker * tracker )
         struct tau_scrape_request * req = tr_ptrArrayNth( reqs, i );
         if( cancel_all || ( req->created_at + TAU_REQUEST_TTL < now ) ) {
             dbgmsg( tracker->key, "timeout scrape req %p", req );
-            tau_scrape_request_fail( tracker->session, req, false, true, NULL );
+            tau_scrape_request_fail( req, false, true, NULL );
             tau_scrape_request_free( req );
             tr_ptrArrayRemove( reqs, i );
             --i;
@@ -909,7 +903,7 @@ tau_handle_message( tr_session * session, const uint8_t * msg, size_t msglen )
             if( req->sent_at && ( transaction_id == req->transaction_id ) ) {
                 dbgmsg( tracker->key, "%"PRIu32" is an announce request!", transaction_id );
                 tr_ptrArrayRemove( reqs, j );
-                on_announce_response( session, req, action_id, buf );
+                on_announce_response( req, action_id, buf );
                 tau_announce_request_free( req );
                 evbuffer_free( buf );
                 return true;
@@ -923,7 +917,7 @@ tau_handle_message( tr_session * session, const uint8_t * msg, size_t msglen )
             if( req->sent_at && ( transaction_id == req->transaction_id ) ) {
                 dbgmsg( tracker->key, "%"PRIu32" is a scrape request!", transaction_id );
                 tr_ptrArrayRemove( reqs, j );
-                on_scrape_response( session, req, action_id, buf );
+                on_scrape_response( req, action_id, buf );
                 tau_scrape_request_free( req );
                 evbuffer_free( buf );
                 return true;
index 46c10b15fae1d6786160a448941d57cfffec3fce..043ec89a4d0bdf79b6a9fa889f42a718dda0640e 100644 (file)
@@ -961,6 +961,7 @@ struct announce_data
     int tierId;
     time_t timeSent;
     tr_announce_event event;
+    tr_session * session;
 
     /** If the request succeeds, the value for tier's "isRunning" flag */
     bool isRunningOnSuccess;
@@ -990,12 +991,12 @@ on_announce_error( tr_tier * tier, const char * err, tr_announce_event e )
 }
 
 static void
-on_announce_done( tr_session                  * session,
-                  const tr_announce_response  * response,
+on_announce_done( const tr_announce_response  * response,
                   void                        * vdata )
 {
-    tr_announcer * announcer = session->announcer;
+   
     struct announce_data * data = vdata;
+    tr_announcer * announcer = data->session->announcer;
     tr_tier * tier = getTier( announcer, response->info_hash, data->tierId );
     const time_t now = tr_time( );
     const tr_announce_event event = data->event;
@@ -1166,6 +1167,7 @@ tierAnnounce( tr_announcer * announcer, tr_tier * tier )
     req = announce_request_new( announcer, tor, tier, announce_event );
 
     data = tr_new0( struct announce_data, 1 );
+    data->session = announcer->session;
     data->tierId = tier->key;
     data->isRunningOnSuccess = tor->isRunning;
     data->timeSent = now;
@@ -1225,12 +1227,12 @@ find_tier( tr_torrent * tor, const char * url )
 }
 
 static void
-on_scrape_done( tr_session                * session,
-                const tr_scrape_response  * response,
-                void                      * user_data UNUSED )
+on_scrape_done( const tr_scrape_response  * response,
+                void                      * vsession )
 {
     int i;
     const time_t now = tr_time( );
+    tr_session * session = vsession;
     tr_announcer * announcer = session->announcer;
 
     for( i=0; i<response->row_count; ++i )
@@ -1373,7 +1375,7 @@ multiscrape( tr_announcer * announcer, tr_ptrArray * tiers )
 
     /* send the requests we just built */
     for( i=0; i<request_count; ++i )
-        scrape_request_delegate( announcer, &requests[i], on_scrape_done, NULL );
+        scrape_request_delegate( announcer, &requests[i], on_scrape_done, announcer->session );
 
     /* cleanup */
     tr_free( requests );