]> granicus.if.org Git - transmission/commitdiff
(trunk libT) tweak the ABI of tr_bencToBuf() to match the way it's being used
authorJordan Lee <jordan@transmissionbt.com>
Wed, 27 Apr 2011 21:22:08 +0000 (21:22 +0000)
committerJordan Lee <jordan@transmissionbt.com>
Wed, 27 Apr 2011 21:22:08 +0000 (21:22 +0000)
libtransmission/announcer-http.c
libtransmission/bencode-test.c
libtransmission/bencode.c
libtransmission/bencode.h
libtransmission/rpc-server.c
libtransmission/rpcimpl.c

index 60cb71791b0329743e654dcd0a1b8a1e49e0123e..241b881d4788bc49b1efd76b69e5fd30f1375992 100644 (file)
@@ -211,8 +211,7 @@ on_announce_done( tr_session   * session,
 
         if( getenv( "TR_CURL_VERBOSE" ) != NULL )
         {
-            struct evbuffer * buf = evbuffer_new( );
-            tr_bencToBuf( &benc, TR_FMT_JSON, buf );
+            struct evbuffer * buf = tr_bencToBuf( &benc, TR_FMT_JSON );
             fprintf( stderr, "Announce response:\n< %s\n", evbuffer_pullup( buf, -1 ) );
             tr_free( buf );
         }
index 7f306cf9922b7a0f027ccbc0ac3437b54812e6dd..4509b359e8e82690457ff038ba830bd73443a08d 100644 (file)
@@ -323,7 +323,7 @@ testJSONSnippet( const char * benc_str,
     char * serialized;
 
     tr_bencLoad( benc_str, strlen( benc_str ), &top, NULL );
-    tr_bencToBuf( &top, TR_FMT_JSON, buf );
+    buf = tr_bencToBuf( &top, TR_FMT_JSON );
     serialized = (char*) evbuffer_pullup( buf, -1 );
     stripWhitespace( serialized );
 #if 0
index 2b06f84206d723929097bc1a29cdc3871a9e9dac..10093846bd1b58e28e84211843f42023e4f9d7e2 100644 (file)
@@ -1606,10 +1606,11 @@ tr_bencMergeDicts( tr_benc * target, const tr_benc * source )
 ****
 ***/
 
-void
-tr_bencToBuf( const tr_benc * top, tr_fmt_mode mode, struct evbuffer * buf )
+struct evbuffer *
+tr_bencToBuf( const tr_benc * top, tr_fmt_mode mode )
 {
-    evbuffer_drain( buf, evbuffer_get_length( buf ) );
+    struct evbuffer * buf = evbuffer_new( );
+
     evbuffer_expand( buf, 4096 ); /* alloc a little memory to start off with */
 
     switch( mode )
@@ -1630,17 +1631,16 @@ tr_bencToBuf( const tr_benc * top, tr_fmt_mode mode, struct evbuffer * buf )
             break;
         }
     }
+
+    return buf;
 }
 
 char*
 tr_bencToStr( const tr_benc * top, tr_fmt_mode mode, int * len )
 {
-    char * ret;
-    struct evbuffer * buf = evbuffer_new( );
-    size_t n;
-    tr_bencToBuf( top, mode, buf );
-    n = evbuffer_get_length( buf );
-    ret = evbuffer_free_to_str( buf );
+    struct evbuffer * buf = tr_bencToBuf( top, mode );
+    const size_t n = evbuffer_get_length( buf );
+    char * ret = evbuffer_free_to_str( buf );
     if( len != NULL )
         *len = (int) n;
     return ret;
index 88de431ee74e71b84fb3d3b5450437490ed0eb97..b31e667e1ee15969419661215753514b57066f15 100644 (file)
@@ -125,7 +125,7 @@ int tr_bencToFile( const tr_benc *, tr_fmt_mode, const char * filename );
 
 char* tr_bencToStr( const tr_benc *, tr_fmt_mode, int * len );
 
-void tr_bencToBuf( const tr_benc *, tr_fmt_mode, struct evbuffer * );
+struct evbuffer * tr_bencToBuf( const tr_benc *, tr_fmt_mode );
 
 /* TR_FMT_JSON_LEAN and TR_FMT_JSON are equivalent in this function. */
 int tr_bencLoadFile( tr_benc * setme, tr_fmt_mode, const char * filename );
index b25ec5aa59ce50d98fe6ef943ccf0d511906e7e0..d514587c90e4cd80184feb7c5d71035483a69903 100644 (file)
@@ -270,8 +270,7 @@ handle_upload( struct evhttp_request * req,
 
             if( have_source )
             {
-                struct evbuffer * json = evbuffer_new( );
-                tr_bencToBuf( &top, TR_FMT_JSON, json );
+                struct evbuffer * json = tr_bencToBuf( &top, TR_FMT_JSON );
                 tr_rpc_request_exec_json( server->session,
                                           evbuffer_pullup( json, -1 ),
                                           evbuffer_get_length( json ),
index 4a007572ec9fd518108a253b700ac33841460f15..96f29dc585243619dafa9155f38c3abae11d3743 100644 (file)
@@ -94,16 +94,16 @@ struct tr_rpc_idle_data
 static void
 tr_idle_function_done( struct tr_rpc_idle_data * data, const char * result )
 {
-    struct evbuffer * buf = evbuffer_new( );
+    struct evbuffer * buf;
 
     if( result == NULL )
         result = "success";
     tr_bencDictAddStr( data->response, "result", result );
 
-    tr_bencToBuf( data->response, TR_FMT_JSON_LEAN, buf );
+    buf = tr_bencToBuf( data->response, TR_FMT_JSON_LEAN );
     (*data->callback)( data->session, buf, data->callback_user_data );
-
     evbuffer_free( buf );
+
     tr_bencFree( data->response );
     tr_free( data->response );
     tr_free( data );
@@ -1715,17 +1715,18 @@ request_exec( tr_session             * session,
     {
         int64_t tag;
         tr_benc response;
-        struct evbuffer * buf = evbuffer_new( );
+        struct evbuffer * buf;
 
         tr_bencInitDict( &response, 3 );
         tr_bencDictAddDict( &response, "arguments", 0 );
         tr_bencDictAddStr( &response, "result", result );
         if( tr_bencDictFindInt( request, "tag", &tag ) )
             tr_bencDictAddInt( &response, "tag", tag );
-        tr_bencToBuf( &response, TR_FMT_JSON_LEAN, buf );
-        (*callback)( session, buf, callback_user_data );
 
+        buf = tr_bencToBuf( &response, TR_FMT_JSON_LEAN );
+        (*callback)( session, buf, callback_user_data );
         evbuffer_free( buf );
+
         tr_bencFree( &response );
     }
     else if( methods[i].immediate )
@@ -1733,7 +1734,7 @@ request_exec( tr_session             * session,
         int64_t tag;
         tr_benc response;
         tr_benc * args_out;
-        struct evbuffer * buf = evbuffer_new( );
+        struct evbuffer * buf;
 
         tr_bencInitDict( &response, 3 );
         args_out = tr_bencDictAddDict( &response, "arguments", 0 );
@@ -1743,10 +1744,11 @@ request_exec( tr_session             * session,
         tr_bencDictAddStr( &response, "result", result );
         if( tr_bencDictFindInt( request, "tag", &tag ) )
             tr_bencDictAddInt( &response, "tag", tag );
-        tr_bencToBuf( &response, TR_FMT_JSON_LEAN, buf );
-        (*callback)( session, buf, callback_user_data );
 
+        buf = tr_bencToBuf( &response, TR_FMT_JSON_LEAN );
+        (*callback)( session, buf, callback_user_data );
         evbuffer_free( buf );
+
         tr_bencFree( &response );
     }
     else