From ddd85ec7e08d38fc46e0e96f01205d1ce4087aea Mon Sep 17 00:00:00 2001 From: erdgeist <> Date: Sun, 21 Oct 2007 01:11:45 +0000 Subject: Fixed one leak from struct_http --- opentracker.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opentracker.c b/opentracker.c index 7e06044..f29e076 100644 --- a/opentracker.c +++ b/opentracker.c @@ -610,8 +610,9 @@ static void handle_read( const int64 clientsocket ) { ssize_t l; if( ( l = io_tryread( clientsocket, static_inbuf, sizeof static_inbuf ) ) <= 0 ) { - if( h && ( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) ) { - array_reset( &h->request ); + if( h ) { + if( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) + array_reset( &h->request ); free( h ); } io_close( clientsocket ); @@ -645,7 +646,8 @@ static void handle_read( const int64 clientsocket ) { static void handle_write( const int64 clientsocket ) { struct http_data* h=io_getcookie( clientsocket ); - if( !h || ( iob_send( clientsocket, &h->batch ) <= 0 ) ) { + if( !h ) return; + if( iob_send( clientsocket, &h->batch ) <= 0 ) { iob_reset( &h->batch ); io_close( clientsocket ); free( h ); @@ -666,14 +668,12 @@ static void handle_accept( const int64 serversocket ) { io_close( i ); continue; } - + io_setcookie( i, h ); io_wantread( i ); byte_zero( h, sizeof( struct http_data ) ); memmove( h->ip, ip, sizeof( ip ) ); - io_setcookie( i, h ); - ++ot_overall_tcp_connections; /* That breaks taia encapsulation. But there is no way to take system -- cgit v1.2.3