Changeset 7550
- Timestamp:
- Dec 30, 2008, 8:40:48 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/rpc-server.c
r7549 r7550 58 58 char * whitelistStr; 59 59 tr_list * whitelist; 60 61 #ifdef HAVE_ZLIB 62 z_stream stream; 63 #endif 60 64 }; 61 65 … … 223 227 static void 224 228 add_response( struct evhttp_request * req, 229 struct tr_rpc_server * server, 225 230 struct evbuffer * out, 226 231 const void * content, … … 241 246 { 242 247 int state; 243 z_stream stream; 244 245 stream.zalloc = (alloc_func) Z_NULL; 246 stream.zfree = (free_func) Z_NULL; 247 stream.opaque = (voidpf) Z_NULL; 248 deflateInit( &stream, Z_BEST_COMPRESSION ); 249 250 stream.next_in = (Bytef*) content; 251 stream.avail_in = content_len; 248 249 server->stream.next_in = (Bytef*) content; 250 server->stream.avail_in = content_len; 252 251 253 252 /* allocate space for the raw data and call deflate() just once -- … … 255 254 * so it's okay to let deflate() run out of output buffer space */ 256 255 evbuffer_expand( out, content_len ); 257 s tream.next_out = EVBUFFER_DATA( out );258 s tream.avail_out = content_len;259 260 state = deflate( &s tream, Z_FINISH );256 server->stream.next_out = EVBUFFER_DATA( out ); 257 server->stream.avail_out = content_len; 258 259 state = deflate( &server->stream, Z_FINISH ); 261 260 262 261 if( state == Z_STREAM_END ) 263 262 { 264 EVBUFFER_LENGTH( out ) = content_len - s tream.avail_out;263 EVBUFFER_LENGTH( out ) = content_len - server->stream.avail_out; 265 264 266 265 /* http://carsten.codimi.de/gzip.yaws/ … … 288 287 } 289 288 290 deflate End( &stream );289 deflateReset( &server->stream ); 291 290 } 292 291 #endif … … 295 294 static void 296 295 serve_file( struct evhttp_request * req, 296 struct tr_rpc_server * server, 297 297 const char * filename ) 298 298 { … … 324 324 evhttp_add_header( req->output_headers, "Content-Type", 325 325 mimetype_guess( filename ) ); 326 add_response( req, out, content, content_len );326 add_response( req, server, out, content, content_len ); 327 327 evhttp_send_reply( req, HTTP_OK, "OK", out ); 328 328 … … 368 368 subpath && *subpath ? subpath : "index.html" ); 369 369 370 serve_file( req, filename );370 serve_file( req, server, filename ); 371 371 372 372 tr_free( filename ); … … 401 401 402 402 buf = tr_getBuffer( ); 403 add_response( req, buf, out, len );403 add_response( req, server, buf, out, len ); 404 404 evhttp_add_header( req->output_headers, "Content-Type", 405 405 "application/json; charset=UTF-8" ); … … 692 692 while(( tmp = tr_list_pop_front( &s->whitelist ))) 693 693 tr_free( tmp ); 694 #ifdef HAVE_ZLIB 695 deflateEnd( &s->stream ); 696 #endif 694 697 tr_free( s->whitelistStr ); 695 698 tr_free( s->username ); … … 726 729 s->isEnabled = isEnabled != 0; 727 730 tr_rpcSetWhitelist( s, whitelist ? whitelist : "127.0.0.1" ); 731 732 #ifdef HAVE_ZLIB 733 s->stream.zalloc = (alloc_func) Z_NULL; 734 s->stream.zfree = (free_func) Z_NULL; 735 s->stream.opaque = (voidpf) Z_NULL; 736 deflateInit( &s->stream, Z_BEST_COMPRESSION ); 737 #endif 738 728 739 if( isEnabled ) 729 740 tr_runInEventThread( session, startServer, s );
Note: See TracChangeset
for help on using the changeset viewer.