gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r5043 - libmicrohttpd/src/daemon


From: gnunet
Subject: [GNUnet-SVN] r5043 - libmicrohttpd/src/daemon
Date: Wed, 13 Jun 2007 17:01:22 -0600 (MDT)

Author: grothoff
Date: 2007-06-13 17:01:21 -0600 (Wed, 13 Jun 2007)
New Revision: 5043

Modified:
   libmicrohttpd/src/daemon/daemon.c
   libmicrohttpd/src/daemon/session.c
Log:
fix

Modified: libmicrohttpd/src/daemon/daemon.c
===================================================================
--- libmicrohttpd/src/daemon/daemon.c   2007-06-13 22:35:05 UTC (rev 5042)
+++ libmicrohttpd/src/daemon/daemon.c   2007-06-13 23:01:21 UTC (rev 5043)
@@ -58,7 +58,7 @@
       return MHD_NO;
     ah = ah->next;
   }
-  ah = malloc(sizeof(MHD_AccessHandlerCallback));
+  ah = malloc(sizeof(struct MHD_AccessHandler));
   ah->next = daemon->handlers;
   ah->uri_prefix = strdup(uri_prefix);
   ah->dh = dh;
@@ -186,7 +186,8 @@
     }
     if ( ( (FD_ISSET(con->socket_fd, &rs)) &&
           (MHD_YES != MHD_session_handle_read(con)) ) ||
-        ( (FD_ISSET(con->socket_fd, &ws)) &&
+        ( (con->socket_fd != -1) &&
+          (FD_ISSET(con->socket_fd, &ws)) &&
           (MHD_YES != MHD_session_handle_write(con)) ) )
       break;
   } 
@@ -214,9 +215,10 @@
   memset(&addr, 
         0,
         sizeof(struct sockaddr));
-  if ( (0 != (s = accept(daemon->socket_fd, 
-                        &addr,
-                        &addrlen))) ||
+  s = accept(daemon->socket_fd, 
+            &addr,
+            &addrlen);
+  if ( (s < 0) ||
        (addrlen <= 0) ) {
     MHD_DLOG(daemon,
             "Error accepting connection: %s\n",
@@ -298,20 +300,23 @@
        free(hpos->header);
        free(hpos->value);
       }
-
       if (pos->response != NULL)
        MHD_destroy_response(pos->response);
       free(pos);
-    }
-    
+      if (prev == NULL)
+       pos = daemon->connections;
+      else
+       pos = prev->next;
+      continue;
+    } 
+
     if ( (pos->headersReceived == 1) &&
         (pos->read_buffer_size == pos->readLoc) &&
         (pos->readLoc > 0) )
       MHD_call_session_handler(pos);
 
-
     prev = pos;
-    pos = pos->next;
+    pos = pos->next;    
   }
 }
 

Modified: libmicrohttpd/src/daemon/session.c
===================================================================
--- libmicrohttpd/src/daemon/session.c  2007-06-13 22:35:05 UTC (rev 5042)
+++ libmicrohttpd/src/daemon/session.c  2007-06-13 23:01:21 UTC (rev 5043)
@@ -361,6 +361,9 @@
           session->read_buffer,
           session->read_buffer_size);
     session->read_buffer_size = session->read_buffer_size * 2 + 
MHD_MAX_BUF_SIZE;
+    if (session->read_buffer != NULL)
+      free(session->read_buffer);
+    session->read_buffer = tmp;
   }
   if (session->readLoc >= session->read_buffer_size) {
     MHD_DLOG(session->daemon,





reply via email to

[Prev in Thread] Current Thread [Next in Thread]