Changeset 7549
- Timestamp:
- Dec 30, 2008, 8:32:00 PM (12 years ago)
- Location:
- trunk/libtransmission
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/bencode.c
r7524 r7549 1044 1044 char * ret; 1045 1045 struct WalkFuncs walkFuncs; 1046 struct evbuffer * out = evbuffer_new( );1046 struct evbuffer * out = tr_getBuffer( ); 1047 1047 1048 1048 walkFuncs.intFunc = saveIntFunc; … … 1056 1056 *len = EVBUFFER_LENGTH( out ); 1057 1057 ret = tr_strndup( EVBUFFER_DATA( out ), EVBUFFER_LENGTH( out ) ); 1058 evbuffer_free( out ); 1058 1059 tr_releaseBuffer( out ); 1059 1060 return ret; 1060 1061 } … … 1318 1319 struct jsonWalk data; 1319 1320 1320 data.out = evbuffer_new( );1321 data.out = tr_getBuffer( ); 1321 1322 data.parents = NULL; 1322 1323 … … 1334 1335 *len = EVBUFFER_LENGTH( data.out ); 1335 1336 ret = tr_strndup( EVBUFFER_DATA( data.out ), EVBUFFER_LENGTH( data.out ) ); 1336 evbuffer_free( data.out ); 1337 1338 tr_releaseBuffer( data.out ); 1337 1339 return ret; 1338 1340 } -
trunk/libtransmission/clients.c
r7526 r7549 411 411 if( !*buf ) 412 412 { 413 struct evbuffer * out = evbuffer_new( );413 struct evbuffer * out = tr_getBuffer( ); 414 414 const char *in, *in_end; 415 415 for( in=(const char*)id, in_end=in+8; in!=in_end; ++in ) { … … 421 421 422 422 tr_strlcpy( buf, EVBUFFER_DATA( out ), buflen ); 423 evbuffer_free( out );424 } 425 } 423 tr_releaseBuffer( out ); 424 } 425 } -
trunk/libtransmission/handshake.c
r7476 r7549 315 315 int len; 316 316 const uint8_t * public_key; 317 struct evbuffer * outbuf = evbuffer_new( );317 struct evbuffer * outbuf = tr_getBuffer( ); 318 318 uint8_t pad_a[PadA_MAXLEN]; 319 319 … … 334 334 335 335 /* cleanup */ 336 evbuffer_free( outbuf );336 tr_releaseBuffer( outbuf ); 337 337 } 338 338 … … 427 427 /* now send these: HASH('req1', S), HASH('req2', SKEY) xor HASH('req3', S), 428 428 * ENCRYPT(VC, crypto_provide, len(PadC), PadC, len(IA)), ENCRYPT(IA) */ 429 outbuf = evbuffer_new( );429 outbuf = tr_getBuffer( ); 430 430 431 431 /* HASH('req1', S) */ … … 484 484 485 485 /* cleanup */ 486 evbuffer_free( outbuf );486 tr_releaseBuffer( outbuf ); 487 487 return READ_LATER; 488 488 } … … 920 920 921 921 tr_cryptoEncryptInit( handshake->crypto ); 922 outbuf = evbuffer_new( );922 outbuf = tr_getBuffer( ); 923 923 924 924 dbgmsg( handshake, "sending vc" ); … … 969 969 /* send it out */ 970 970 tr_peerIoWriteBuf( handshake->io, outbuf, FALSE ); 971 evbuffer_free( outbuf );971 tr_releaseBuffer( outbuf ); 972 972 973 973 /* now await the handshake */ -
trunk/libtransmission/metainfo.c
r7476 r7549 62 62 { 63 63 char * ret; 64 struct evbuffer * buf = evbuffer_new( );64 struct evbuffer * buf = tr_getBuffer( ); 65 65 66 66 evbuffer_add_printf( buf, "%s%c%s", tr_getTorrentDir( session ), … … 71 71 72 72 ret = tr_strndup( EVBUFFER_DATA( buf ), EVBUFFER_LENGTH( buf ) ); 73 evbuffer_free( buf );73 tr_releaseBuffer( buf ); 74 74 return ret; 75 75 } … … 137 137 else 138 138 { 139 struct evbuffer * buf = evbuffer_new( );139 struct evbuffer * buf = tr_getBuffer( ); 140 140 int n = tr_bencListSize( path ); 141 141 int i; … … 155 155 *setme = tr_strndup( EVBUFFER_DATA( buf ), EVBUFFER_LENGTH( buf ) ); 156 156 /* fprintf( stderr, "[%s]\n", *setme ); */ 157 evbuffer_free( buf );157 tr_releaseBuffer( buf ); 158 158 err = 0; 159 159 } … … 235 235 strrchr( announce, '/' ) ) ) && !strncmp( ++s, "announce", 8 ) ) 236 236 { 237 struct evbuffer * buf = evbuffer_new( );237 struct evbuffer * buf = tr_getBuffer( ); 238 238 evbuffer_add( buf, announce, s - announce ); 239 239 evbuffer_add( buf, "scrape", 6 ); 240 240 evbuffer_add_printf( buf, "%s", s + 8 ); 241 241 scrape = tr_strdup( EVBUFFER_DATA( buf ) ); 242 evbuffer_free( buf );242 tr_releaseBuffer( buf ); 243 243 } 244 244 -
trunk/libtransmission/peer-msgs.c
r7548 r7549 330 330 va_list args; 331 331 char timestr[64]; 332 struct evbuffer * buf = evbuffer_new( );332 struct evbuffer * buf = tr_getBuffer( ); 333 333 char * base = tr_basename( file ); 334 334 … … 345 345 346 346 tr_free( base ); 347 evbuffer_free( buf );347 tr_releaseBuffer( buf ); 348 348 } 349 349 } … … 1759 1759 int err; 1760 1760 static uint8_t * buf = NULL; 1761 static struct evbuffer * out = NULL;1762 1761 1763 1762 if( buf == NULL ) 1764 1763 buf = tr_new( uint8_t, MAX_BLOCK_SIZE ); 1765 if( out == NULL )1766 out = evbuffer_new( );1767 1768 assert( !EVBUFFER_LENGTH( out ) );1769 1764 1770 1765 /* send a block */ … … 1775 1770 } else { 1776 1771 tr_peerIo * io = msgs->peer->io; 1772 struct evbuffer * out = tr_getBuffer( ); 1777 1773 dbgmsg( msgs, "sending block %u:%u->%u", req.index, req.offset, req.length ); 1778 1774 tr_peerIoWriteUint32( io, out, sizeof( uint8_t ) + 2 * sizeof( uint32_t ) + req.length ); … … 1784 1780 bytesWritten += EVBUFFER_LENGTH( out ); 1785 1781 msgs->clientSentAnythingAt = now; 1782 tr_releaseBuffer( out ); 1786 1783 } 1787 1784 } -
trunk/libtransmission/rpc-server.c
r7479 r7549 77 77 { 78 78 const char * code_text = tr_webGetResponseStr( code ); 79 struct evbuffer * body = evbuffer_new( );79 struct evbuffer * body = tr_getBuffer( ); 80 80 81 81 evbuffer_add_printf( body, "<h1>%d: %s</h1>", code, code_text ); … … 83 83 evbuffer_add_printf( body, "%s", text ); 84 84 evhttp_send_reply( req, code, code_text, body ); 85 evbuffer_free( body ); 85 86 tr_releaseBuffer( body ); 86 87 } 87 88 … … 320 321 321 322 errno = error; 322 out = evbuffer_new( );323 out = tr_getBuffer( ); 323 324 evhttp_add_header( req->output_headers, "Content-Type", 324 325 mimetype_guess( filename ) ); … … 326 327 evhttp_send_reply( req, HTTP_OK, "OK", out ); 327 328 328 evbuffer_free( out );329 tr_releaseBuffer( out ); 329 330 tr_free( content ); 330 331 } … … 399 400 } 400 401 401 buf = evbuffer_new( );402 buf = tr_getBuffer( ); 402 403 add_response( req, buf, out, len ); 403 404 evhttp_add_header( req->output_headers, "Content-Type", … … 406 407 407 408 /* cleanup */ 408 evbuffer_free( buf );409 tr_releaseBuffer( buf ); 409 410 tr_free( out ); 410 411 } -
trunk/libtransmission/utils.c
r7543 r7549 45 45 46 46 #include "transmission.h" 47 #include "list.h" 47 48 #include "utils.h" 48 49 #include "platform.h" … … 240 241 va_list args; 241 242 char timestr[64]; 242 struct evbuffer * buf = evbuffer_new( );243 struct evbuffer * buf = tr_getBuffer( ); 243 244 char * base = tr_basename( file ); 244 245 … … 256 257 257 258 tr_free( base ); 258 evbuffer_free( buf );259 tr_releaseBuffer( buf ); 259 260 } 260 261 } … … 685 686 va_list ap; 686 687 687 buf = evbuffer_new( );688 buf = tr_getBuffer( ); 688 689 va_start( ap, fmt ); 689 690 … … 692 693 693 694 va_end( ap ); 694 evbuffer_free( buf );695 tr_releaseBuffer( buf ); 695 696 return ret; 696 697 } … … 1294 1295 return (void*)(intptr_t)i; 1295 1296 } 1297 1298 /*** 1299 **** 1300 ***/ 1301 1302 static tr_list * _bufferList = NULL; 1303 1304 struct evbuffer* 1305 tr_getBuffer( void ) 1306 { 1307 struct evbuffer * buf = tr_list_pop_front( &_bufferList ); 1308 if( buf == NULL ) 1309 buf = evbuffer_new( ); 1310 assert( !EVBUFFER_LENGTH( buf ) ); 1311 return buf; 1312 } 1313 1314 void 1315 tr_releaseBuffer( struct evbuffer * buf ) 1316 { 1317 evbuffer_drain( buf, EVBUFFER_LENGTH( buf ) ); 1318 tr_list_prepend( &_bufferList, buf ); 1319 } -
trunk/libtransmission/utils.h
r7533 r7549 245 245 /* wait the specified number of milliseconds */ 246 246 void tr_wait( uint64_t delay_milliseconds ); 247 248 /*** 249 **** 250 ***/ 251 252 struct evbuffer; 253 254 /** @brief pool of reusable buffers 255 @see tr_releaseBuffer() */ 256 struct evbuffer * tr_getBuffer( void ); 257 258 /** @brief return a buffer to the pool 259 @see tr_getBuffer() */ 260 void tr_releaseBuffer( struct evbuffer * buf ); 261 247 262 248 263 /*** -
trunk/libtransmission/webseed.c
r7404 r7549 100 100 { 101 101 char * ret; 102 struct evbuffer * out = evbuffer_new( );102 struct evbuffer * out = tr_getBuffer( ); 103 103 const char * url = w->url; 104 104 const size_t url_len = strlen( url ); … … 141 141 142 142 ret = tr_strndup( EVBUFFER_DATA( out ), EVBUFFER_LENGTH( out ) ); 143 evbuffer_free( out );143 tr_releaseBuffer( out ); 144 144 return ret; 145 145 }
Note: See TracChangeset
for help on using the changeset viewer.