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