gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r22733 - in libmicrohttpd: . doc src/daemon src/include


From: gnunet
Subject: [GNUnet-SVN] r22733 - in libmicrohttpd: . doc src/daemon src/include
Date: Tue, 17 Jul 2012 23:52:26 +0200

Author: grothoff
Date: 2012-07-17 23:52:26 +0200 (Tue, 17 Jul 2012)
New Revision: 22733

Modified:
   libmicrohttpd/ChangeLog
   libmicrohttpd/doc/microhttpd.texi
   libmicrohttpd/src/daemon/connection.c
   libmicrohttpd/src/daemon/connection.h
   libmicrohttpd/src/daemon/daemon.c
   libmicrohttpd/src/daemon/reason_phrase.c
   libmicrohttpd/src/daemon/response.c
   libmicrohttpd/src/include/microhttpd.h
Log:
code cleanup, minor bug fixes, allow lookup up trailing values with key of NULL

Modified: libmicrohttpd/ChangeLog
===================================================================
--- libmicrohttpd/ChangeLog     2012-07-17 20:40:39 UTC (rev 22732)
+++ libmicrohttpd/ChangeLog     2012-07-17 21:52:26 UTC (rev 22733)
@@ -1,3 +1,8 @@
+Tue Jul 17 23:50:43 CEST 2012
+       Stylistic code clean up.  Allowing lookup up of trailing values
+       without keys using "MHD_lookup_connection_value" with a key of NULL
+       (thus achieving consistency with the existing iterator API). -CG
+
 Tue Jul 17 22:37:05 CEST 2012
        Adding experimental (!) code for MHD operation without listen socket. 
-CG
 

Modified: libmicrohttpd/doc/microhttpd.texi
===================================================================
--- libmicrohttpd/doc/microhttpd.texi   2012-07-17 20:40:39 UTC (rev 22732)
+++ libmicrohttpd/doc/microhttpd.texi   2012-07-17 21:52:26 UTC (rev 22733)
@@ -1270,12 +1270,16 @@
 
 
 @deftypefun {const char *} MHD_lookup_connection_value (struct MHD_Connection 
*connection, enum MHD_ValueKind kind, const char *key)
-Get a particular header value.  If multiple values match the @var{kind},
-return one of them (the ``first'', whatever that means).  @var{key} must
-reference a zero-terminated @ascii{}-coded string representing the
-header to look for: it is compared against the headers using
address@hidden, so case is ignored.  Return @mynull{} if no such
-item was found.
+Get a particular header value.  If multiple values match the
address@hidden, return one of them (the ``first'', whatever that means).
address@hidden must reference a zero-terminated @ascii{}-coded string
+representing the header to look for: it is compared against the
+headers using @cfunction{strcasecmp}, so case is ignored.  A value of
+NULL for @var{key} can be used to lookup 'trailing' values without a
+key, for example if a URI is of the form
+``http://example.com/?trailer'', a @var{key} of NULL can be used to
+access ``tailer" The function returns @mynull{} if no matching item
+was found.
 @end deftypefun
 
 

Modified: libmicrohttpd/src/daemon/connection.c
===================================================================
--- libmicrohttpd/src/daemon/connection.c       2012-07-17 20:40:39 UTC (rev 
22732)
+++ libmicrohttpd/src/daemon/connection.c       2012-07-17 21:52:26 UTC (rev 
22733)
@@ -123,22 +123,18 @@
   int ret;
   struct MHD_HTTP_Header *pos;
 
-  if (connection == NULL)
+  if (NULL == connection)
     return -1;
   ret = 0;
-  pos = connection->headers_received;
-  while (pos != NULL)
-    {
-      if (0 != (pos->kind & kind))
-        {
-          ret++;
-          if ((iterator != NULL) &&
-              (MHD_YES != iterator (iterator_cls,
-                                    kind, pos->header, pos->value)))
-            return ret;
-        }
-      pos = pos->next;
-    }
+  for (pos = connection->headers_received; NULL != pos; pos = pos->next)
+    if (0 != (pos->kind & kind))
+      {
+       ret++;
+       if ((NULL != iterator) &&
+           (MHD_YES != iterator (iterator_cls,
+                                 kind, pos->header, pos->value)))
+         return ret;
+      }
   return ret;
 }
 
@@ -181,7 +177,7 @@
 
   pos = MHD_pool_allocate (connection->pool,
                            sizeof (struct MHD_HTTP_Header), MHD_NO);
-  if (pos == NULL)
+  if (NULL == pos)
     return MHD_NO;
   pos->header = (char *) key;
   pos->value = (char *) value;
@@ -208,7 +204,7 @@
  *
  * @param connection connection to get values from
  * @param kind what kind of value are we looking for
- * @param key the header to look for
+ * @param key the header to look for, NULL to lookup 'trailing' value without 
a key
  * @return NULL if no such item was found
  */
 const char *
@@ -220,7 +216,11 @@
   if (NULL == connection)
     return NULL;
   for (pos = connection->headers_received; NULL != pos; pos = pos->next)
-    if ((0 != (pos->kind & kind)) && (0 == strcasecmp (key, pos->header)))
+    if ((0 != (pos->kind & kind)) && 
+       ( (key == pos->header) ||
+         ( (NULL != pos->header) &&
+           (NULL != key) &&
+           (0 == strcasecmp (key, pos->header))) ))
       return pos->value;    
   return NULL;
 }
@@ -240,28 +240,28 @@
 MHD_queue_response (struct MHD_Connection *connection,
                     unsigned int status_code, struct MHD_Response *response)
 {
-  if ((connection == NULL) ||
-      (response == NULL) ||
-      (connection->response != NULL) ||
-      ((connection->state != MHD_CONNECTION_HEADERS_PROCESSED) &&
-       (connection->state != MHD_CONNECTION_FOOTERS_RECEIVED)))
+  if ( (NULL == connection) ||
+       (NULL == response) ||
+       (NULL != connection->response) ||
+       ( (MHD_CONNECTION_HEADERS_PROCESSED != connection->state) &&
+        (MHD_CONNECTION_FOOTERS_RECEIVED != connection->state) ) )
     return MHD_NO;
   MHD_increment_response_rc (response);
   connection->response = response;
   connection->responseCode = status_code;
-  if ((connection->method != NULL) &&
-      (0 == strcasecmp (connection->method, MHD_HTTP_METHOD_HEAD)))
+  if ( (NULL != connection->method) &&
+       (0 == strcasecmp (connection->method, MHD_HTTP_METHOD_HEAD)) )
     {
       /* if this is a "HEAD" request, pretend that we
          have already sent the full message body */
       connection->response_write_position = response->total_size;
     }
-  if (connection->state == MHD_CONNECTION_HEADERS_PROCESSED)
+  if (MHD_CONNECTION_HEADERS_PROCESSED == connection->state)
     {
       /* response was queued "early",
          refuse to read body / footers or further
          requests! */
-      SHUTDOWN (connection->socket_fd, SHUT_RD);
+      (void) SHUTDOWN (connection->socket_fd, SHUT_RD);
       connection->read_closed = MHD_YES;
       connection->state = MHD_CONNECTION_FOOTERS_RECEIVED;
     }
@@ -281,16 +281,16 @@
 {
   const char *expect;
 
-  return ((connection->response == NULL) &&
-          (connection->version != NULL) &&
-        (0 == strcasecmp (connection->version,
-                            MHD_HTTP_VERSION_1_1)) &&
-          (NULL != (expect = MHD_lookup_connection_value (connection,
-                                                          MHD_HEADER_KIND,
-                                                          
MHD_HTTP_HEADER_EXPECT)))
-          && (0 == strcasecmp (expect, "100-continue"))
-          && (connection->continue_message_write_offset <
-              strlen (HTTP_100_CONTINUE)));
+  return ( (NULL == connection->response) &&
+          (NULL != connection->version) &&
+          (0 == strcasecmp (connection->version,
+                            MHD_HTTP_VERSION_1_1)) &&
+          (NULL != (expect = MHD_lookup_connection_value (connection,
+                                                          MHD_HEADER_KIND,
+                                                          
MHD_HTTP_HEADER_EXPECT))) &&
+          (0 == strcasecmp (expect, "100-continue")) &&
+          (connection->continue_message_write_offset <
+           strlen (HTTP_100_CONTINUE)) );
 }
 
 
@@ -358,6 +358,7 @@
  * this function may close the socket (and return
  * MHD_NO).
  *
+ * @param connection the connection
  * @return MHD_NO if readying the response failed
  */
 static int
@@ -367,7 +368,7 @@
   struct MHD_Response *response;
 
   response = connection->response;
-  if (response->crc == NULL)
+  if (NULL == response->crc)
     return MHD_YES;
   if ( (response->data_start <=
        connection->response_write_position) &&
@@ -375,7 +376,7 @@
        connection->response_write_position) )
     return MHD_YES; /* response already ready */
 #if LINUX
-  if ( (response->fd != -1) &&
+  if ( (-1 != response->fd) &&
        (0 == (connection->daemon->options & MHD_USE_SSL)) )
     {
       /* will use sendfile, no need to bother response crc */
@@ -389,7 +390,7 @@
                        MHD_MIN (response->data_buffer_size,
                                 response->total_size -
                                 connection->response_write_position));
-  if ((ret == 0) &&
+  if ((0 == ret) &&
       (0 != (connection->daemon->options & MHD_USE_SELECT_INTERNALLY)))
     mhd_panic (mhd_panic_cls, __FILE__, __LINE__, 
 #if HAVE_MESSAGES
@@ -398,8 +399,8 @@
               NULL
 #endif
               );
-  if ( (ret == MHD_CONTENT_READER_END_OF_STREAM) ||
-       (ret == MHD_CONTENT_READER_END_WITH_ERROR) )
+  if ( (MHD_CONTENT_READER_END_OF_STREAM == ret) ||
+       (MHD_CONTENT_READER_END_WITH_ERROR == ret) )
     {
       /* either error or http 1.0 transfer, close socket! */
       response->total_size = connection->response_write_position;
@@ -411,7 +412,7 @@
     }
   response->data_start = connection->response_write_position;
   response->data_size = ret;
-  if (ret == 0)
+  if (0 == ret)
     {
       connection->state = MHD_CONNECTION_NORMAL_BODY_UNREADY;
       return MHD_NO;
@@ -426,6 +427,7 @@
  * transmission is complete, this function may close the socket (and
  * return MHD_NO).
  *
+ * @param connection the connection
  * @return MHD_NO if readying the response failed
  */
 static int
@@ -439,7 +441,7 @@
   int cblen;
 
   response = connection->response;
-  if (connection->write_buffer_size == 0)
+  if (0 == connection->write_buffer_size)
     {
       size = connection->daemon->pool_size;
       do
@@ -454,7 +456,7 @@
             }
           buf = MHD_pool_allocate (connection->pool, size, MHD_NO);
         }
-      while (buf == NULL);
+      while (NULL == buf);
       connection->write_buffer_size = size;
       connection->write_buffer = buf;
     }
@@ -480,7 +482,7 @@
                           &connection->write_buffer[sizeof (cbuf)],
                           connection->write_buffer_size - sizeof (cbuf) - 2);
     }
-  if (ret == MHD_CONTENT_READER_END_WITH_ERROR) 
+  if (MHD_CONTENT_READER_END_WITH_ERROR == ret)
     {
       /* error, close socket! */
       response->total_size = connection->response_write_position;
@@ -488,7 +490,7 @@
                              "Closing connection (error generating 
response)\n");
       return MHD_NO;
     }
-  if (ret == MHD_CONTENT_READER_END_OF_STREAM) 
+  if (MHD_CONTENT_READER_END_OF_STREAM == ret) 
     {
       /* end of message, signal other side! */
       strcpy (connection->write_buffer, "0\r\n");
@@ -497,7 +499,7 @@
       response->total_size = connection->response_write_position;
       return MHD_YES;
     }
-  if (ret == 0)
+  if (0 == ret)
     {
       connection->state = MHD_CONNECTION_CHUNKED_BODY_UNREADY;
       return MHD_NO;
@@ -517,9 +519,12 @@
   return MHD_YES;
 }
 
+
 /**
  * Check if we need to set some additional headers
  * for http-compiliance.
+ *
+ * @param connection connection to check (and possibly modify)
  */
 static void
 add_extra_headers (struct MHD_Connection *connection)
@@ -528,19 +533,19 @@
   char buf[128];
 
   connection->have_chunked_upload = MHD_NO;
-  if (connection->response->total_size == MHD_SIZE_UNKNOWN)
+  if (MHD_SIZE_UNKNOWN == connection->response->total_size)
     {
       have = MHD_get_response_header (connection->response,
                                       MHD_HTTP_HEADER_CONNECTION);
-      if ((have == NULL) || (0 != strcasecmp (have, "close")))
+      if ((NULL == have) || (0 != strcasecmp (have, "close")))
         {
-          if ((connection->version != NULL) &&
+          if ((NULL != connection->version) &&
               (0 == strcasecmp (connection->version, MHD_HTTP_VERSION_1_1)))
             {
               connection->have_chunked_upload = MHD_YES;
               have = MHD_get_response_header (connection->response,
                                               
MHD_HTTP_HEADER_TRANSFER_ENCODING);
-              if (have == NULL)
+              if (NULL == have)
                 MHD_add_response_header (connection->response,
                                          MHD_HTTP_HEADER_TRANSFER_ENCODING,
                                          "chunked");
@@ -557,12 +562,13 @@
     {
       SPRINTF (buf,
                "%" MHD_LONG_LONG_PRINTF "u",
-              (unsigned MHD_LONG_LONG)connection->response->total_size);
+              (unsigned MHD_LONG_LONG) connection->response->total_size);
       MHD_add_response_header (connection->response,
                                MHD_HTTP_HEADER_CONTENT_LENGTH, buf);
     }
 }
 
+
 /**
  * Produce HTTP "Date:" header.
  *
@@ -591,9 +597,11 @@
            1900 + now.tm_year, now.tm_hour, now.tm_min, now.tm_sec);
 }
 
+
 /**
  * Try growing the read buffer
  *
+ * @param connection the connection
  * @return MHD_YES on success, MHD_NO on failure
  */
 static int
@@ -606,7 +614,7 @@
                              connection->read_buffer_size,
                              connection->read_buffer_size * 2 +
                              MHD_BUF_INC_SIZE + 1);
-  if (buf == NULL)
+  if (NULL == buf)
     return MHD_NO;
   /* we can actually grow the buffer, do it! */
   connection->read_buffer = buf;
@@ -620,6 +628,8 @@
  * Allocate the connection's write buffer and fill it with all of the
  * headers (or footers, if we have already sent the body) from the
  * HTTPd's response.
+ *
+ * @param connection the connection
  */
 static int
 build_header_response (struct MHD_Connection *connection)
@@ -645,7 +655,7 @@
       connection->write_buffer_size = 0;
       return MHD_YES;
     }
-  if (connection->state == MHD_CONNECTION_FOOTERS_RECEIVED)
+  if (MHD_CONNECTION_FOOTERS_RECEIVED == connection->state)
     {
       add_extra_headers (connection);
       rc = connection->responseCode & (~MHD_ICY_FLAG);
@@ -686,23 +696,19 @@
                                                       
MHD_HTTP_HEADER_CONNECTION)) );
   if (must_add_close)
     size += strlen ("Connection: close\r\n");
-  pos = connection->response->first_header;
-  while (pos != NULL)
-    {
-      if (pos->kind == kind)
-        size += strlen (pos->header) + strlen (pos->value) + 4; /* colon, 
space, linefeeds */
-      pos = pos->next;
-    }
+  for (pos = connection->response->first_header; NULL != pos; pos = pos->next)
+    if (pos->kind == kind)
+      size += strlen (pos->header) + strlen (pos->value) + 4; /* colon, space, 
linefeeds */
   /* produce data */
   data = MHD_pool_allocate (connection->pool, size + 1, MHD_YES);
-  if (data == NULL)
+  if (NULL == data)
     {
 #if HAVE_MESSAGES
       MHD_DLOG (connection->daemon, "Not enough memory for write!\n");
 #endif
       return MHD_NO;
     }
-  if (connection->state == MHD_CONNECTION_FOOTERS_RECEIVED)
+  if (MHD_CONNECTION_FOOTERS_RECEIVED == connection->state)
     {
       memcpy (data, code, off);
     }
@@ -716,13 +722,12 @@
              strlen ("Connection: close\r\n"));
       off += strlen ("Connection: close\r\n");
     }
-  pos = connection->response->first_header;
-  while (pos != NULL)
-    {
-      if (pos->kind == kind)
-        off += SPRINTF (&data[off], "%s: %s\r\n", pos->header, pos->value);
-      pos = pos->next;
-    }
+  for (pos = connection->response->first_header; NULL != pos; pos = pos->next)
+    if (pos->kind == kind)
+      off += SPRINTF (&data[off], 
+                     "%s: %s\r\n",
+                     pos->header, 
+                     pos->value);
   if (connection->state == MHD_CONNECTION_FOOTERS_RECEIVED)
     {
       strcpy (&data[off], date);
@@ -746,15 +751,18 @@
  * Handle it properly by stopping to read data
  * and sending the indicated response code and message.
  *
+ * @param connection the connection
  * @param status_code the response code to send (400, 413 or 414)
+ * @param message the error message to send
  */
 static void
 transmit_error_response (struct MHD_Connection *connection,
-                         unsigned int status_code, const char *message)
+                         unsigned int status_code, 
+                        const char *message)
 {
   struct MHD_Response *response;
 
-  if (connection->version == NULL)
+  if (NULL == connection->version)
     {
       /* we were unable to process the full header line, so we don't
         really know what version the client speaks; assume 1.0 */
@@ -786,12 +794,19 @@
     }
 }
 
+
 /**
  * Add "fd" to the "fd_set".  If "fd" is
  * greater than "*max", set "*max" to fd.
+ *
+ * @param fd file descriptor to add to the set
+ * @param set set to modify
+ * @param max_fd maximum value to potentially update
  */
 static void
-do_fd_set (int fd, fd_set * set, int *max_fd)
+add_to_fd_set (int fd, 
+              fd_set *set, 
+              int *max_fd)
 {
   FD_SET (fd, set);
   if ( (NULL != max_fd) &&
@@ -799,27 +814,38 @@
     *max_fd = fd;
 }
 
+
 /**
- * Obtain the select sets for this connection
+ * Obtain the select sets for this connection.  The given
+ * sets (and the maximum) are updated and must have 
+ * already been initialized.
  *
+ * @param connection connetion to get select sets for
+ * @param read_fd_set read set to initialize
+ * @param write_fd_set write set to initialize
+ * @param except_fd_set except set to initialize (never changed)
+ * @param max_fd where to store largest FD put into any set
  * @return MHD_YES on success
  */
 int
 MHD_connection_get_fdset (struct MHD_Connection *connection,
-                          fd_set * read_fd_set,
-                          fd_set * write_fd_set,
-                          fd_set * except_fd_set, int *max_fd)
+                          fd_set *read_fd_set,
+                          fd_set *write_fd_set,
+                          fd_set *except_fd_set, 
+                         int *max_fd)
 {
   int ret;
   struct MHD_Pollfd p;
 
-  memset(&p, 0, sizeof(struct MHD_Pollfd));
-  ret = MHD_connection_get_pollfd(connection, &p);
-  if ( (ret == MHD_YES) && (p.fd >= 0) ) {
+  /* we use the 'poll fd' as a convenient way to re-use code 
+     when determining the select sets */
+  memset (&p, 0, sizeof(struct MHD_Pollfd));
+  ret = MHD_connection_get_pollfd (connection, &p);
+  if ( (MHD_YES == ret) && (p.fd >= 0) ) {
     if (0 != (p.events & MHD_POLL_ACTION_IN)) 
-      do_fd_set(p.fd, read_fd_set, max_fd);    
+      add_to_fd_set(p.fd, read_fd_set, max_fd);    
     if (0 != (p.events & MHD_POLL_ACTION_OUT)) 
-      do_fd_set(p.fd, write_fd_set, max_fd);    
+      add_to_fd_set(p.fd, write_fd_set, max_fd);    
   }
   return ret;
 }
@@ -828,17 +854,20 @@
 /**
  * Obtain the pollfd for this connection
  *
+ * @param connection connetion to get poll set for 
+ * @param p where to store the polling information
  * @return MHD_YES on success. If return MHD_YES and p->fd < 0, this 
  *                 connection is not waiting for any read or write events
  */
 int
-MHD_connection_get_pollfd (struct MHD_Connection *connection, struct 
MHD_Pollfd *p)
+MHD_connection_get_pollfd (struct MHD_Connection *connection, 
+                          struct MHD_Pollfd *p)
 {
   int fd;
 
-  if (connection->pool == NULL)
+  if (NULL == connection->pool)
     connection->pool = MHD_pool_create (connection->daemon->pool_size);
-  if (connection->pool == NULL)
+  if (NULL == connection->pool)
     {
       CONNECTION_CLOSE_ERROR (connection,
                              "Failed to create memory pool!\n");
@@ -846,7 +875,7 @@
     }
   fd = connection->socket_fd;
   p->fd = fd;
-  if (fd == -1)
+  if (-1 == fd)
     return MHD_YES;
   while (1)
     {
@@ -870,7 +899,7 @@
           /* while reading headers, we always grow the
              read buffer if needed, no size-check required */
           if ((connection->read_closed) &&
-              (connection->read_buffer_offset == 0))
+              (0 == connection->read_buffer_offset))
             {
              CONNECTION_CLOSE_ERROR (connection, 
                                      "Connection buffer to small for 
request\n");
@@ -984,6 +1013,7 @@
   return MHD_YES;
 }
 
+
 /**
  * Parse a single line of the HTTP header.  Advance
  * read_buffer (!) appropriately.  If the current line does not
@@ -998,12 +1028,12 @@
   char *rbuf;
   size_t pos;
 
-  if (connection->read_buffer_offset == 0)
+  if (0 == connection->read_buffer_offset)
     return NULL;
   pos = 0;
   rbuf = connection->read_buffer;
   while ((pos < connection->read_buffer_offset - 1) &&
-         (rbuf[pos] != '\r') && (rbuf[pos] != '\n'))
+         ('\r' != rbuf[pos]) && ('\n' != rbuf[pos]))
     pos++;
   if (pos == connection->read_buffer_offset - 1)
     {
@@ -1015,10 +1045,10 @@
                                       connection->read_buffer_size,
                                       connection->read_buffer_size * 2 +
                                       MHD_BUF_INC_SIZE);
-          if (rbuf == NULL)
+          if (NULL == rbuf)
             {
               transmit_error_response (connection,
-                                       (connection->url != NULL)
+                                       (NULL != connection->url)
                                        ? MHD_HTTP_REQUEST_ENTITY_TOO_LARGE
                                        : MHD_HTTP_REQUEST_URI_TOO_LONG,
                                        REQUEST_TOO_BIG);
@@ -1033,7 +1063,7 @@
       return NULL;
     }
   /* found, check if we have proper CRLF */
-  if ((rbuf[pos] == '\r') && (rbuf[pos + 1] == '\n'))
+  if (('\r' == rbuf[pos]) && ('\n' == rbuf[pos + 1]))
     rbuf[pos++] = '\0';         /* skip both r and n */
   rbuf[pos++] = '\0';
   connection->read_buffer += pos;
@@ -1085,15 +1115,15 @@
  */
 static int
 parse_arguments (enum MHD_ValueKind kind,
-                 struct MHD_Connection *connection, char *args)
+                 struct MHD_Connection *connection, 
+                char *args)
 {
   char *equals;
   char *amper;
 
-  while (args != NULL)
+  while (NULL != args)
     {
-      equals = strstr (args, "=");
-      if (equals == NULL)
+      if (NULL == (equals = strstr (args, "=")))
        {
          /* add with 'value' NULL */
          connection->daemon->unescape_callback 
(connection->daemon->unescape_callback_cls,
@@ -1220,6 +1250,7 @@
   return MHD_YES;
 }
 
+
 /**
  * Parse the first line of the HTTP HEADER.
  *
@@ -1234,8 +1265,7 @@
   char *httpVersion;
   char *args;
 
-  uri = strstr (line, " ");
-  if (uri == NULL)
+  if (NULL == (uri = strstr (line, " ")))
     return MHD_NO;              /* serious error */
   uri[0] = '\0';
   connection->method = line;
@@ -1282,7 +1312,7 @@
 {
   size_t processed;
 
-  if (connection->response != NULL)
+  if (NULL != connection->response)
     return;                     /* already queued a response */  
   processed = 0;
   connection->client_aware = MHD_YES;
@@ -1321,7 +1351,7 @@
   char *buffer_head;
   char *end;
 
-  if (connection->response != NULL)
+  if (NULL != connection->response)
     return;                     /* already queued a response */
 
   buffer_head = connection->read_buffer;
@@ -1473,7 +1503,7 @@
       if (connection->remaining_upload_size != MHD_SIZE_UNKNOWN)
         connection->remaining_upload_size -= used;
     }
-  while (instant_retry == MHD_YES);
+  while (MHD_YES == instant_retry);
   if (available > 0)
     memmove (connection->read_buffer, buffer_head, available);
   connection->read_buffer_offset = available;
@@ -1502,7 +1532,7 @@
                                      connection->read_buffer_offset);
   if (bytes_read < 0)
     {
-      if ((errno == EINTR) || (errno == EAGAIN))
+      if ((EINTR == errno) || (EAGAIN == errno))
         return MHD_NO;
 #if HAVE_MESSAGES
 #if HTTPS_SUPPORT
@@ -1518,7 +1548,7 @@
       CONNECTION_CLOSE_ERROR (connection, NULL);
       return MHD_YES;
     }
-  if (bytes_read == 0)
+  if (0 == bytes_read)
     {
       /* other side closed connection */
       connection->read_closed = MHD_YES;
@@ -1549,7 +1579,7 @@
 
   if (ret < 0)
     {
-      if ((errno == EINTR) || (errno == EAGAIN))
+      if ((EINTR == errno) || (EAGAIN == errno))
         return MHD_NO;
 #if HAVE_MESSAGES
 #if HTTPS_SUPPORT
@@ -1774,12 +1804,14 @@
     }
 }
 
+
 /**
  * This function handles a particular connection when it has been
  * determined that there is data to be read off a socket. All
  * implementations (multithreaded, external select, internal select)
  * call this function to handle reads.
  *
+ * @param connection connection to handle
  * @return always MHD_YES (we should continue to process the
  *         connection)
  */
@@ -1843,6 +1875,7 @@
  * implementations (multithreaded, external select, internal select)
  * call this function
  *
+ * @param connection connection to handle
  * @return always MHD_YES (we should continue to process the
  *         connection)
  */
@@ -1993,12 +2026,14 @@
   return MHD_YES;
 }
 
+
 /**
  * This function was created to handle per-connection processing that
  * has to happen even if the socket cannot be read or written to.  All
  * implementations (multithreaded, external select, internal select)
  * call this function.
  *
+ * @param connection connection to handle
  * @return MHD_YES if we should continue to process the
  *         connection (not dead yet), MHD_NO if it died
  */
@@ -2381,6 +2416,11 @@
 }
 
 
+/**
+ * Set callbacks for this connection to those for HTTP.
+ *
+ * @param connection connection to initialize
+ */
 void
 MHD_set_http_callbacks_ (struct MHD_Connection *connection)
 {

Modified: libmicrohttpd/src/daemon/connection.h
===================================================================
--- libmicrohttpd/src/daemon/connection.h       2012-07-17 20:40:39 UTC (rev 
22732)
+++ libmicrohttpd/src/daemon/connection.h       2012-07-17 21:52:26 UTC (rev 
22733)
@@ -29,9 +29,17 @@
 
 #include "internal.h"
 
+
 /**
- * Obtain the select sets for this connection.
+ * Obtain the select sets for this connection.   The given
+ * sets (and the maximum) are updated and must have 
+ * already been initialized.
  *
+ * @param connection connetion to get select sets for
+ * @param read_fd_set read set to initialize
+ * @param write_fd_set write set to initialize
+ * @param except_fd_set except set to initialize (never changed)
+ * @param max_fd where to store largest FD put into any set
  * @return MHD_YES on success
  */
 int
@@ -40,27 +48,81 @@
                           fd_set * write_fd_set,
                           fd_set * except_fd_set, int *max_fd);
 
+
 /**
  * Obtain the pollfd for this connection. The poll interface allows large
  * file descriptors. Select goes stupid when the fd overflows fdset (which
  * is fixed).
+ *
+ * @param connection connetion to get poll set for 
+ * @param p where to store the polling information
  */
-int MHD_connection_get_pollfd(struct MHD_Connection *connection,
-                              struct MHD_Pollfd *p);
+int 
+MHD_connection_get_pollfd (struct MHD_Connection *connection,
+                          struct MHD_Pollfd *p);
 
-void MHD_set_http_callbacks_ (struct MHD_Connection *connection);
 
-int MHD_connection_handle_read (struct MHD_Connection *connection);
+/**
+ * Set callbacks for this connection to those for HTTP.
+ *
+ * @param connection connection to initialize
+ */
+void 
+MHD_set_http_callbacks_ (struct MHD_Connection *connection);
 
-int MHD_connection_handle_write (struct MHD_Connection *connection);
 
-int MHD_connection_handle_idle (struct MHD_Connection *connection);
+/**
+ * This function handles a particular connection when it has been
+ * determined that there is data to be read off a socket. All
+ * implementations (multithreaded, external select, internal select)
+ * call this function to handle reads.
+ *
+ * @param connection connection to handle
+ * @return always MHD_YES (we should continue to process the
+ *         connection)
+ */
+int 
+MHD_connection_handle_read (struct MHD_Connection *connection);
 
+
 /**
+ * This function was created to handle writes to sockets when it has
+ * been determined that the socket can be written to. All
+ * implementations (multithreaded, external select, internal select)
+ * call this function
+ *
+ * @param connection connection to handle
+ * @return always MHD_YES (we should continue to process the
+ *         connection)
+ */
+int 
+MHD_connection_handle_write (struct MHD_Connection *connection);
+
+
+/**
+ * This function was created to handle per-connection processing that
+ * has to happen even if the socket cannot be read or written to.  All
+ * implementations (multithreaded, external select, internal select)
+ * call this function.
+ *
+ * @param connection connection to handle
+ * @return MHD_YES if we should continue to process the
+ *         connection (not dead yet), MHD_NO if it died
+ */
+int 
+MHD_connection_handle_idle (struct MHD_Connection *connection);
+
+
+/**
  * Close the given connection and give the
  * specified termination code to the user.
+ *
+ * @param connection connection to close
+ * @param termination_code termination reason to give
  */
-void MHD_connection_close (struct MHD_Connection *connection,
-                           enum MHD_RequestTerminationCode termination_code);
+void 
+MHD_connection_close (struct MHD_Connection *connection,
+                     enum MHD_RequestTerminationCode termination_code);
 
+
 #endif

Modified: libmicrohttpd/src/daemon/daemon.c
===================================================================
--- libmicrohttpd/src/daemon/daemon.c   2012-07-17 20:40:39 UTC (rev 22732)
+++ libmicrohttpd/src/daemon/daemon.c   2012-07-17 21:52:26 UTC (rev 22733)
@@ -191,6 +191,7 @@
     }
 }
 
+
 /**
  * Tree comparison function for IP addresses (supplied to tsearch() family).
  * We compare everything in the struct up through the beginning of the
@@ -203,7 +204,7 @@
 static int
 MHD_ip_addr_compare(const void *a1, const void *a2)
 {
-  return memcmp (a1, a2, offsetof(struct MHD_IPCount, count));
+  return memcmp (a1, a2, offsetof (struct MHD_IPCount, count));
 }
 
 
@@ -216,15 +217,16 @@
  * @return MHD_YES on success and MHD_NO otherwise (e.g., invalid address type)
  */
 static int
-MHD_ip_addr_to_key(const struct sockaddr *addr, socklen_t addrlen,
+MHD_ip_addr_to_key(const struct sockaddr *addr, 
+                  socklen_t addrlen,
                    struct MHD_IPCount *key)
 {
   memset(key, 0, sizeof(*key));
 
   /* IPv4 addresses */
-  if (addrlen == sizeof(struct sockaddr_in))
+  if (sizeof (struct sockaddr_in) == addrlen)
     {
-      const struct sockaddr_in *addr4 = (const struct sockaddr_in*)addr;
+      const struct sockaddr_in *addr4 = (const struct sockaddr_in*) addr;
       key->family = AF_INET;
       memcpy (&key->addr.ipv4, &addr4->sin_addr, sizeof(addr4->sin_addr));
       return MHD_YES;
@@ -232,9 +234,9 @@
 
 #if HAVE_IPV6
   /* IPv6 addresses */
-  if (addrlen == sizeof (struct sockaddr_in6))
+  if (sizeof (struct sockaddr_in6) == addrlen)
     {
-      const struct sockaddr_in6 *addr6 = (const struct sockaddr_in6*)addr;
+      const struct sockaddr_in6 *addr6 = (const struct sockaddr_in6*) addr;
       key->family = AF_INET6;
       memcpy (&key->addr.ipv6, &addr6->sin6_addr, sizeof(addr6->sin6_addr));
       return MHD_YES;
@@ -261,17 +263,16 @@
                 socklen_t addrlen)
 {
   struct MHD_IPCount *key;
+  void **nodep;
   void *node;
   int result;
 
   daemon = MHD_get_master (daemon);
-
   /* Ignore if no connection limit assigned */
-  if (daemon->per_ip_connection_limit == 0)
+  if (0 == daemon->per_ip_connection_limit)
     return MHD_YES;
 
-  key = malloc (sizeof(*key));
-  if (NULL == key)
+  if (NULL == (key = malloc (sizeof(*key))))
     return MHD_NO;
 
   /* Initialize key */
@@ -281,32 +282,30 @@
       free (key);
       return MHD_YES;
     }
-
   MHD_ip_count_lock (daemon);
 
   /* Search for the IP address */
-  node = (void*)TSEARCH (key, &daemon->per_ip_connection_count, 
MHD_ip_addr_compare);
-  if (!node)
+  if (NULL == (nodep = TSEARCH (key, 
+                               &daemon->per_ip_connection_count, 
+                               &MHD_ip_addr_compare)))
     {
 #if HAVE_MESSAGES
-      MHD_DLOG(daemon,
-               "Failed to add IP connection count node\n");
+      MHD_DLOG (daemon,
+               "Failed to add IP connection count node\n");
 #endif      
       MHD_ip_count_unlock (daemon);
       free (key);
       return MHD_NO;
     }
-  node = *(void**)node;
-
+  node = *nodep;
   /* If we got an existing node back, free the one we created */
   if (node != key)
     free(key);
-  key = (struct MHD_IPCount*)node;
-
+  key = (struct MHD_IPCount *) node;
   /* Test if there is room for another connection; if so,
    * increment count */
   result = (key->count < daemon->per_ip_connection_limit);
-  if (result == MHD_YES)
+  if (MHD_YES == result)
     ++key->count;
 
   MHD_ip_count_unlock (daemon);
@@ -329,14 +328,12 @@
 {
   struct MHD_IPCount search_key;
   struct MHD_IPCount *found_key;
-  void *node;
+  void **nodep;
 
   daemon = MHD_get_master (daemon);
-
   /* Ignore if no connection limit assigned */
-  if (daemon->per_ip_connection_limit == 0)
+  if (0 == daemon->per_ip_connection_limit)
     return;
-
   /* Initialize search key */
   if (MHD_NO == MHD_ip_addr_to_key (addr, addrlen, &search_key))
     return;
@@ -344,22 +341,21 @@
   MHD_ip_count_lock (daemon);
 
   /* Search for the IP address */
-  node = (void*)TFIND (&search_key, &daemon->per_ip_connection_count, 
MHD_ip_addr_compare);
-
-  /* Something's wrong if we couldn't find an IP address
-   * that was previously added */
-  if (!node)
-    {
+  if (NULL == (nodep = TFIND (&search_key, 
+                             &daemon->per_ip_connection_count, 
+                             &MHD_ip_addr_compare)))
+    {      
+      /* Something's wrong if we couldn't find an IP address
+       * that was previously added */
 #if HAVE_MESSAGES
       MHD_DLOG (daemon,
                 "Failed to find previously-added IP address\n");
 #endif
       abort();
     }
-  found_key = (struct MHD_IPCount*)*(void**)node;
-
+  found_key = (struct MHD_IPCount *) *nodep;
   /* Validate existing count for IP address */
-  if (found_key->count == 0)
+  if (0 == found_key->count)
     {
 #if HAVE_MESSAGES
       MHD_DLOG (daemon,
@@ -367,11 +363,12 @@
 #endif
       abort();
     }
-
   /* Remove the node entirely if count reduces to 0 */
-  if (--found_key->count == 0)
+  if (0 == --found_key->count)
     {
-      TDELETE (found_key, &daemon->per_ip_connection_count, 
MHD_ip_addr_compare);
+      TDELETE (found_key, 
+              &daemon->per_ip_connection_count, 
+              &MHD_ip_addr_compare);
       free (found_key);
     }
 
@@ -395,9 +392,10 @@
 recv_tls_adapter (struct MHD_Connection *connection, void *other, size_t i)
 {
   int res;
+
   res = gnutls_record_recv (connection->tls_session, other, i);
-  if ( (res == GNUTLS_E_AGAIN) ||
-       (res == GNUTLS_E_INTERRUPTED) )
+  if ( (GNUTLS_E_AGAIN == res) ||
+       (GNUTLS_E_INTERRUPTED == res) )
     {
       errno = EINTR;
       return -1;
@@ -427,9 +425,10 @@
                   const void *other, size_t i)
 {
   int res;
+
   res = gnutls_record_send (connection->tls_session, other, i);
-  if ( (res == GNUTLS_E_AGAIN) ||
-       (res == GNUTLS_E_INTERRUPTED) )
+  if ( (GNUTLS_E_AGAIN == res) ||
+       (GNUTLS_E_INTERRUPTED == res) )
     {
       errno = EINTR;
       return -1;
@@ -450,7 +449,7 @@
   gnutls_datum_t key;
   gnutls_datum_t cert;
 
-  if (daemon->https_mem_trust) 
+  if (NULL != daemon->https_mem_trust) 
     {
       cert.data = (unsigned char *) daemon->https_mem_trust;
       cert.size = strlen (daemon->https_mem_trust);
@@ -466,7 +465,8 @@
     }
   
   /* certificate & key loaded from memory */
-  if (daemon->https_mem_cert && daemon->https_mem_key)
+  if ( (NULL != daemon->https_mem_cert) && 
+       (NULL != daemon->https_mem_key) )
     {
       key.data = (unsigned char *) daemon->https_mem_key;
       key.size = strlen (daemon->https_mem_key);
@@ -605,8 +605,8 @@
          tv.tv_usec = 0;
          tvp = &tv;
        }
-      if ((con->state == MHD_CONNECTION_NORMAL_BODY_UNREADY) ||
-         (con->state == MHD_CONNECTION_CHUNKED_BODY_UNREADY))
+      if ( (MHD_CONNECTION_NORMAL_BODY_UNREADY == con->state) ||
+          (MHD_CONNECTION_CHUNKED_BODY_UNREADY == con->state) )
        {
          /* do not block (we're waiting for our callback to succeed) */
          tv.tv_sec = 0;
@@ -628,10 +628,12 @@
          num_ready = SELECT (max + 1, &rs, &ws, &es, tvp);
          if (num_ready < 0) 
            {
-             if (errno == EINTR)
+             if (EINTR == errno)
                continue;
 #if HAVE_MESSAGES
-             MHD_DLOG (con->daemon, "Error during select (%d): `%s'\n", max,
+             MHD_DLOG (con->daemon,
+                       "Error during select (%d): `%s'\n", 
+                       max,
                        STRERROR (errno));
 #endif
              break;
@@ -658,11 +660,9 @@
            p[0].events |= POLLOUT;
          if (poll (p, 
                    1, 
-                   (tvp == NULL) 
-                   ? -1 
-                   : tv.tv_sec * 1000) < 0)
+                   (NULL == tvp) ? -1 : tv.tv_sec * 1000) < 0)
            {
-             if (errno == EINTR)
+             if (EINTR == errno)
                continue;
 #if HAVE_MESSAGES
              MHD_DLOG (con->daemon, "Error during poll: `%s'\n", 
@@ -681,7 +681,7 @@
        }
 #endif
     }
-  if (con->state != MHD_CONNECTION_IN_CLEANUP)
+  if (MHD_CONNECTION_IN_CLEANUP != con->state)
     {
 #if DEBUG_CLOSE
 #if HAVE_MESSAGES
@@ -689,12 +689,13 @@
                 "Processing thread terminating, closing connection\n");
 #endif
 #endif
-      if (con->state != MHD_CONNECTION_CLOSED)
-       MHD_connection_close (con, MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);
+      if (MHD_CONNECTION_CLOSED != con->state)
+       MHD_connection_close (con, 
+                             MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);
       con->idle_handler (con);
     }
 exit:
-  if (con->response != NULL)
+  if (NULL != con->response)
     {
       MHD_destroy_response (con->response);
       con->response = NULL;
@@ -747,8 +748,8 @@
   off_t left;
   ssize_t ret;
 #endif
-  if ( (connection->socket_fd == -1) ||
-       (connection->state == MHD_CONNECTION_CLOSED) )
+  if ( (-1 == connection->socket_fd) ||
+       (MHD_CONNECTION_CLOSED == connection->state) )
     {
       errno = ENOTCONN;
       return -1;
@@ -766,16 +767,14 @@
       left = connection->response->total_size - 
connection->response_write_position;
       if (left > SSIZE_MAX)
        left = SSIZE_MAX; /* cap at return value limit */
-      ret = sendfile (connection->socket_fd, 
-                     fd,
-                     &offset,
-                     (size_t) left);
-      if (ret != -1)
+      if (-1 != (ret = sendfile (connection->socket_fd, 
+                                fd,
+                                &offset,
+                                (size_t) left)))
        return ret;
-      if ((EINTR == errno) || (EAGAIN == errno))
+      if ( (EINTR == errno) || (EAGAIN == errno) )
        return 0;
-      if ( (EINVAL == errno) ||
-          (EBADF == errno) )
+      if ( (EINVAL == errno) || (EBADF == errno) )
        return -1; 
       /* None of the 'usual' sendfile errors occurred, so we should try
         to fall back to 'SEND'; see also this thread for info on
@@ -806,7 +805,7 @@
   pthread_attr_t *pattr;
   int ret;
   
-  if (daemon->thread_stack_size != 0) 
+  if (0 != daemon->thread_stack_size) 
     {
       if (0 != (ret = pthread_attr_init (&attr))) 
        goto ERR;
@@ -823,7 +822,7 @@
     }
   ret = pthread_create (thread, pattr,
                        start_routine, arg);
-  if (daemon->thread_stack_size != 0) 
+  if (0 != daemon->thread_stack_size) 
     pthread_attr_destroy (&attr);
   return ret;
  ERR:
@@ -893,8 +892,8 @@
   MHD_DLOG (daemon, "Accepted connection on socket %d\n", s);
 #endif
 #endif
-  if ((daemon->max_connections == 0)
-      || (MHD_ip_limit_add (daemon, addr, addrlen) == MHD_NO))
+  if ( (0 == daemon->max_connections) ||
+       (MHD_NO == MHD_ip_limit_add (daemon, addr, addrlen)) )
     {
       /* above connection limit - reject */
 #if HAVE_MESSAGES
@@ -907,8 +906,9 @@
     }
 
   /* apply connection acceptance policy if present */
-  if ((daemon->apc != NULL)
-      && (MHD_NO == daemon->apc (daemon->apc_cls, addr, addrlen)))
+  if ( (NULL != daemon->apc) && 
+       (MHD_NO == daemon->apc (daemon->apc_cls, 
+                              addr, addrlen)) )
     {
 #if DEBUG_CLOSE
 #if HAVE_MESSAGES
@@ -924,16 +924,19 @@
 #if OSX
 #ifdef SOL_SOCKET
 #ifdef SO_NOSIGPIPE
-  setsockopt (client_socket, SOL_SOCKET, SO_NOSIGPIPE, &on, sizeof (on));
+  setsockopt (client_socket, 
+             SOL_SOCKET, SO_NOSIGPIPE, 
+             &on, sizeof (on));
 #endif
 #endif
 #endif
 
-  connection = malloc (sizeof (struct MHD_Connection));
-  if (NULL == connection)
+  if (NULL == (connection = malloc (sizeof (struct MHD_Connection))))
     {
 #if HAVE_MESSAGES
-      MHD_DLOG (daemon, "Error allocating memory: %s\n", STRERROR (errno));
+      MHD_DLOG (daemon, 
+               "Error allocating memory: %s\n", 
+               STRERROR (errno));
 #endif
       SHUTDOWN (client_socket, SHUT_RDWR);
       CLOSE (client_socket);
@@ -943,11 +946,12 @@
   memset (connection, 0, sizeof (struct MHD_Connection));
   connection->connection_timeout = daemon->connection_timeout;
   connection->pool = NULL;
-  connection->addr = malloc (addrlen);
-  if (connection->addr == NULL)
+  if (NULL == (connection->addr = malloc (addrlen)))
     {
 #if HAVE_MESSAGES
-      MHD_DLOG (daemon, "Error allocating memory: %s\n", STRERROR (errno));
+      MHD_DLOG (daemon, 
+               "Error allocating memory: %s\n", 
+               STRERROR (errno));
 #endif
       SHUTDOWN (client_socket, SHUT_RDWR);
       CLOSE (client_socket);
@@ -979,13 +983,14 @@
     /* make socket non-blocking */
 #ifndef MINGW
     int flags = fcntl (connection->socket_fd, F_GETFL);
-    if ( (flags == -1) ||
+    if ( (-1 == flags) ||
         (0 != fcntl (connection->socket_fd, F_SETFL, flags | O_NONBLOCK)) )
       {
 #if HAVE_MESSAGES
-       FPRINTF(stderr, "Failed to make socket %d non-blocking: %s\n", 
-               connection->socket_fd,
-               STRERROR (errno));
+       MHD_DLOG (daemon,
+                 "Failed to make socket %d non-blocking: %s\n", 
+                 connection->socket_fd,
+                 STRERROR (errno));
 #endif
       }
 #else
@@ -993,8 +998,9 @@
     if (0 != ioctlsocket (connection->socket_fd, FIONBIO, &flags))
       {
 #if HAVE_MESSAGES
-       FPRINTF(stderr, "Failed to make socket non-blocking: %s\n", 
-               STRERROR (errno));
+       MHD_DLOG (daemon, 
+                 "Failed to make socket non-blocking: %s\n", 
+                 STRERROR (errno));
 #endif
       }
 #endif
@@ -1076,7 +1082,7 @@
     {
       res_thread_create = create_thread (&connection->pid, daemon,
                                         &MHD_handle_connection, connection);
-      if (res_thread_create != 0)
+      if (0 != res_thread_create)
         {
 #if HAVE_MESSAGES
           MHD_DLOG (daemon, "Failed to create a thread: %s\n",
@@ -1148,14 +1154,16 @@
     s = ACCEPT (daemon->socket_fd, addr, &addrlen);
     need_fcntl = MHD_YES;
   }
-  if ((s == -1) || (addrlen <= 0))
+  if ((-1 == s) || (addrlen <= 0))
     {
 #if HAVE_MESSAGES
       /* This could be a common occurance with multiple worker threads */
       if ((EAGAIN != errno) && (EWOULDBLOCK != errno))
-        MHD_DLOG (daemon, "Error accepting connection: %s\n", STRERROR 
(errno));
+        MHD_DLOG (daemon, 
+                 "Error accepting connection: %s\n", 
+                 STRERROR (errno));
 #endif
-      if (s != -1)
+      if (-1 != s)
         {
           SHUTDOWN (s, SHUT_RDWR);
           CLOSE (s);
@@ -1182,8 +1190,9 @@
 #if WINDOWS
         SetErrnoFromWinError (GetLastError ());
 #endif
-       FPRINTF(stderr, "Failed to make socket non-inheritable: %s\n", 
-               STRERROR (errno));
+       MHD_DLOG (daemon,
+                 "Failed to make socket non-inheritable: %s\n", 
+                 STRERROR (errno));
 #endif
       }
   }
@@ -1241,7 +1250,7 @@
        gnutls_deinit (pos->tls_session);
 #endif
       MHD_ip_limit_del (daemon, (struct sockaddr*)pos->addr, pos->addr_len);
-      if (pos->response != NULL)
+      if (NULL != pos->response)
        {
          MHD_destroy_response (pos->response);
          pos->response = NULL;
@@ -1282,7 +1291,7 @@
   time_t earliest_deadline;
   time_t now;
   struct MHD_Connection *pos;
-  int have_timeout = MHD_NO;
+  int have_timeout;
 
   if (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION))
     {
@@ -1291,10 +1300,8 @@
 #endif  
       return MHD_NO;
     }
-  pos = daemon->connections_head;
-  if (pos == NULL)
-    return MHD_NO;              /* no connections */
-  while (pos != NULL)
+  have_timeout = MHD_NO;
+  for (pos = daemon->connections_head; NULL != pos; pos = pos->next)
     {
       if (0 != pos->connection_timeout) {
         if (!have_timeout ||
@@ -1307,9 +1314,8 @@
 #endif
         have_timeout = MHD_YES;
       }
-      pos = pos->next;
     }
-  if (!have_timeout)
+  if (MHD_NO == have_timeout)
     return MHD_NO;
   now = MHD_monotonic_time();
   if (earliest_deadline < now)
@@ -1345,12 +1351,12 @@
 
   timeout.tv_sec = 0;
   timeout.tv_usec = 0;
-  if (daemon->shutdown == MHD_YES)
+  if (MHD_YES == daemon->shutdown)
     return MHD_NO;
   FD_ZERO (&rs);
   FD_ZERO (&ws);
   FD_ZERO (&es);
-  max = 0;
+  max = -1;
   if (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION))
     {
       /* single-threaded, go over everything */
@@ -1366,12 +1372,12 @@
   else
     {
       /* accept only, have one thread per connection */
-      max = daemon->socket_fd;
-      if (max == -1)
-        return MHD_NO;
-      FD_SET (max, &rs);
+      if (-1 != daemon->socket_fd) 
+       {
+         max = daemon->socket_fd;
+         FD_SET (daemon->socket_fd, &rs);
+       }
     }
-
   if (-1 != daemon->wpipe[0])
     {
       FD_SET (daemon->wpipe[0], &rs);
@@ -1381,7 +1387,7 @@
     }
 
   tv = NULL;
-  if (may_block == MHD_NO)
+  if (MHD_NO == may_block)
     {
       timeout.tv_usec = 0;
       timeout.tv_sec = 0;
@@ -1397,20 +1403,17 @@
     }
   num_ready = SELECT (max + 1, &rs, &ws, &es, tv);
 
-  if (daemon->shutdown == MHD_YES)
+  if (MHD_YES == daemon->shutdown)
     return MHD_NO;
   if (num_ready < 0)
     {
-      if (errno == EINTR)
+      if (EINTR == errno)
         return MHD_YES;
 #if HAVE_MESSAGES
       MHD_DLOG (daemon, "select failed: %s\n", STRERROR (errno));
 #endif
       return MHD_NO;
     }
-  if (MHD_YES == daemon->shutdown)
-    return MHD_YES;
-
   /* select connection thread handling type */
   if ( (-1 != (ds = daemon->socket_fd)) &&
        (FD_ISSET (ds, &rs)) )
@@ -1454,13 +1457,11 @@
   struct MHD_Connection *pos;
   struct MHD_Connection *next;
 
+  /* count number of connections and thus determine poll set size */
   num_connections = 0;
-  pos = daemon->connections_head;
-  while (pos != NULL)
-    {
-      num_connections++;
-      pos = pos->next;
-    }
+  for (pos = daemon->connections_head; NULL != pos; pos = pos->next)
+    num_connections++;
+
   {
     struct pollfd p[2 + num_connections];
     struct MHD_Pollfd mp;
@@ -1515,7 +1516,9 @@
        if (EINTR == errno)
          return MHD_YES;
 #if HAVE_MESSAGES
-       MHD_DLOG (daemon, "poll failed: %s\n", STRERROR (errno));
+       MHD_DLOG (daemon, 
+                 "poll failed: %s\n", 
+                 STRERROR (errno));
 #endif
        return MHD_NO;
       }
@@ -1620,7 +1623,7 @@
          int may_block)
 {
 #ifdef HAVE_POLL_H
-  if (daemon->shutdown == MHD_YES)
+  if (MHD_YES == daemon->shutdown)
     return MHD_NO;
   if (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION))
     return MHD_poll_all (daemon, may_block);
@@ -1814,9 +1817,9 @@
          if (daemon->worker_pool_size >= SIZE_MAX / sizeof (struct MHD_Daemon))
            {
 #if HAVE_MESSAGES
-             FPRINTF (stderr,
-                      "Specified thread pool size (%u) too big\n",
-                      daemon->worker_pool_size);
+             MHD_DLOG (daemon,
+                       "Specified thread pool size (%u) too big\n",
+                       daemon->worker_pool_size);
 #endif
              return MHD_NO;
            }
@@ -1827,9 +1830,9 @@
            daemon->https_mem_key = va_arg (ap, const char *);
 #if HAVE_MESSAGES
          else
-           FPRINTF (stderr,
-                    "MHD HTTPS option %d passed to MHD but MHD_USE_SSL not 
set\n",
-                    opt);        
+           MHD_DLOG (daemon,
+                     "MHD HTTPS option %d passed to MHD but MHD_USE_SSL not 
set\n",
+                     opt);       
 #endif
           break;
         case MHD_OPTION_HTTPS_MEM_CERT:
@@ -1837,9 +1840,9 @@
            daemon->https_mem_cert = va_arg (ap, const char *);
 #if HAVE_MESSAGES
          else
-           FPRINTF (stderr,
-                    "MHD HTTPS option %d passed to MHD but MHD_USE_SSL not 
set\n",
-                    opt);        
+           MHD_DLOG (daemon,
+                     "MHD HTTPS option %d passed to MHD but MHD_USE_SSL not 
set\n",
+                     opt);       
 #endif
           break;
         case MHD_OPTION_HTTPS_MEM_TRUST:
@@ -1847,16 +1850,16 @@
            daemon->https_mem_trust = va_arg (ap, const char *);
 #if HAVE_MESSAGES
          else
-           FPRINTF (stderr,
-                    "MHD HTTPS option %d passed to MHD but MHD_USE_SSL not 
set\n",
-                    opt);
+           MHD_DLOG (daemon,
+                     "MHD HTTPS option %d passed to MHD but MHD_USE_SSL not 
set\n",
+                     opt);
 #endif
           break;
        case MHD_OPTION_HTTPS_CRED_TYPE:
          daemon->cred_type = va_arg (ap, gnutls_credentials_type_t);
          break;
         case MHD_OPTION_HTTPS_PRIORITIES:
-         if (daemon->options & MHD_USE_SSL)
+         if (0 != (daemon->options & MHD_USE_SSL))
            {
              gnutls_priority_deinit (daemon->priority_cache);
              ret = gnutls_priority_init (&daemon->priority_cache,
@@ -1865,10 +1868,10 @@
              if (ret != GNUTLS_E_SUCCESS)
              {
 #if HAVE_MESSAGES
-               FPRINTF (stderr,
-                        "Setting priorities to `%s' failed: %s\n",
-                        pstr,
-                        gnutls_strerror (ret));
+               MHD_DLOG (daemon,
+                         "Setting priorities to `%s' failed: %s\n",
+                         pstr,
+                         gnutls_strerror (ret));
 #endif   
                daemon->priority_cache = NULL;
                return MHD_NO;
@@ -1994,15 +1997,15 @@
           if (((opt >= MHD_OPTION_HTTPS_MEM_KEY) &&
               (opt <= MHD_OPTION_HTTPS_PRIORITIES)) || (opt == 
MHD_OPTION_HTTPS_MEM_TRUST))
             {
-              FPRINTF (stderr,
-                       "MHD HTTPS option %d passed to MHD compiled without 
HTTPS support\n",
-                       opt);
+              MHD_DLOG (daemon,
+                       "MHD HTTPS option %d passed to MHD compiled without 
HTTPS support\n",
+                       opt);
             }
           else
             {
-              FPRINTF (stderr,
-                       "Invalid option %d! (Did you terminate the list with 
MHD_OPTION_END?)\n",
-                       opt);
+              MHD_DLOG (daemon,
+                       "Invalid option %d! (Did you terminate the list with 
MHD_OPTION_END?)\n",
+                       opt);
             }
 #endif
          return MHD_NO;
@@ -2050,13 +2053,9 @@
   if (!GetHandleInformation ((HANDLE) fd, &dwFlags))
 #endif
   {
-#if HAVE_MESSAGES
 #if WINDOWS
     SetErrnoFromWinError (GetLastError ());
 #endif
-    FPRINTF(stderr, "Failed to get socket options to make socket 
non-inheritable: %s\n", 
-           STRERROR (errno));
-#endif
     return fd; /* good luck */
   }
 #if !WINDOWS
@@ -2065,18 +2064,14 @@
   flags |= FD_CLOEXEC;
   if (0 != fcntl (fd, F_SETFD, flags))
 #else
-  if (dwFlags != dwFlags | HANDLE_FLAG_INHERIT)
+  if (dwFlags != (dwFlags | HANDLE_FLAG_INHERIT))
     return fd; /* already unset */
   if (!SetHandleInformation ((HANDLE) fd, HANDLE_FLAG_INHERIT, 0))
 #endif
   {
-#if HAVE_MESSAGES
 #if WINDOWS
     SetErrnoFromWinError (GetLastError ());
 #endif
-    FPRINTF(stderr, "Failed to make socket non-inheritable: %s\n", 
-           STRERROR (errno));
-#endif
     return fd; /* good luck */
   }
   return fd;
@@ -2103,7 +2098,7 @@
                     va_list ap)
 {
   const int on = 1;
-  struct MHD_Daemon *retVal;
+  struct MHD_Daemon *daemon;
   int socket_fd;
   struct sockaddr_in servaddr4;
 #if HAVE_INET6
@@ -2115,73 +2110,72 @@
   int res_thread_create;
   int use_pipe;
 
-  if ((port == 0) || (dh == NULL))
+  if (NULL == dh)
     return NULL;
-  retVal = malloc (sizeof (struct MHD_Daemon));
-  if (retVal == NULL)
+  if (NULL == (daemon = malloc (sizeof (struct MHD_Daemon))))
     return NULL;
-  memset (retVal, 0, sizeof (struct MHD_Daemon));
+  memset (daemon, 0, sizeof (struct MHD_Daemon));
 #if HTTPS_SUPPORT
-  if (options & MHD_USE_SSL)
+  if (0 != (options & MHD_USE_SSL))
     {
-      gnutls_priority_init (&retVal->priority_cache,
+      gnutls_priority_init (&daemon->priority_cache,
                            "NORMAL",
                            NULL);
     }
 #endif
-  retVal->socket_fd = -1;
-  retVal->options = (enum MHD_OPTION) options;
-  retVal->port = port;
-  retVal->apc = apc;
-  retVal->apc_cls = apc_cls;
-  retVal->default_handler = dh;
-  retVal->default_handler_cls = dh_cls;
-  retVal->max_connections = MHD_MAX_CONNECTIONS_DEFAULT;
-  retVal->pool_size = MHD_POOL_SIZE_DEFAULT;
-  retVal->unescape_callback = &MHD_http_unescape;
-  retVal->connection_timeout = 0;       /* no timeout */
-  retVal->wpipe[0] = -1;
-  retVal->wpipe[1] = -1;
+  daemon->socket_fd = -1;
+  daemon->options = (enum MHD_OPTION) options;
+  daemon->port = port;
+  daemon->apc = apc;
+  daemon->apc_cls = apc_cls;
+  daemon->default_handler = dh;
+  daemon->default_handler_cls = dh_cls;
+  daemon->max_connections = MHD_MAX_CONNECTIONS_DEFAULT;
+  daemon->pool_size = MHD_POOL_SIZE_DEFAULT;
+  daemon->unescape_callback = &MHD_http_unescape;
+  daemon->connection_timeout = 0;       /* no timeout */
+  daemon->wpipe[0] = -1;
+  daemon->wpipe[1] = -1;
+#if HAVE_MESSAGES
+  daemon->custom_error_log =
+    (void (*)(void *, const char *, va_list)) &vfprintf;
+  daemon->custom_error_log_cls = stderr;
+#endif
 #ifdef HAVE_LISTEN_SHUTDOWN
-  use_pipe = (0 != (retVal->options & MHD_USE_NO_LISTEN_SOCKET));
+  use_pipe = (0 != (daemon->options & MHD_USE_NO_LISTEN_SOCKET));
 #else
   use_pipe = 1; /* yes, must use pipe to signal shutdown */
 #endif
   if ( (use_pipe) &&
-       (0 != PIPE (retVal->wpipe)) )
+       (0 != PIPE (daemon->wpipe)) )
     {
 #if HAVE_MESSAGES
-      FPRINTF(stderr, 
-             "Failed to create control pipe: %s\n",
-             STRERROR (errno));
+      MHD_DLOG (daemon, 
+               "Failed to create control pipe: %s\n",
+               STRERROR (errno));
 #endif
-      free (retVal);
+      free (daemon);
       return NULL;
     }
 #ifndef WINDOWS
   if ( (0 == (options & MHD_USE_POLL)) &&
-       (retVal->wpipe[0] >= FD_SETSIZE) )
+       (daemon->wpipe[0] >= FD_SETSIZE) )
     {
 #if HAVE_MESSAGES
-      FPRINTF(stderr, 
-             "file descriptor for control pipe exceeds maximum value\n");
+      MHD_DLOG (daemon, 
+               "file descriptor for control pipe exceeds maximum value\n");
 #endif
-      CLOSE (retVal->wpipe[0]);
-      CLOSE (retVal->wpipe[1]);
-      free (retVal);
+      CLOSE (daemon->wpipe[0]);
+      CLOSE (daemon->wpipe[1]);
+      free (daemon);
       return NULL;
     }
 #endif
 #ifdef DAUTH_SUPPORT
-  retVal->digest_auth_rand_size = 0;
-  retVal->digest_auth_random = NULL;
-  retVal->nonce_nc_size = 4; /* tiny */
+  daemon->digest_auth_rand_size = 0;
+  daemon->digest_auth_random = NULL;
+  daemon->nonce_nc_size = 4; /* tiny */
 #endif
-#if HAVE_MESSAGES
-  retVal->custom_error_log =
-    (void (*)(void *, const char *, va_list)) &vfprintf;
-  retVal->custom_error_log_cls = stderr;
-#endif
 #if HTTPS_SUPPORT
   if (0 != (options & MHD_USE_SSL))
     {
@@ -2189,88 +2183,88 @@
       if (0 != pthread_mutex_lock (&MHD_gnutls_init_mutex))
        {
 #if HAVE_MESSAGES
-         MHD_DLOG (retVal, "Failed to acquire gnutls mutex\n");
+         MHD_DLOG (daemon, "Failed to acquire gnutls mutex\n");
 #endif
           mhd_panic (mhd_panic_cls, __FILE__, __LINE__, NULL);
        }
       if (0 != pthread_mutex_unlock (&MHD_gnutls_init_mutex))
        {
 #if HAVE_MESSAGES
-         MHD_DLOG (retVal, "Failed to release gnutls mutex\n");
+         MHD_DLOG (daemon, "Failed to release gnutls mutex\n");
 #endif
          mhd_panic (mhd_panic_cls, __FILE__, __LINE__, NULL);
        }
-      retVal->cred_type = GNUTLS_CRD_CERTIFICATE;
+      daemon->cred_type = GNUTLS_CRD_CERTIFICATE;
     }
 #endif
 
-  if (MHD_YES != parse_options_va (retVal, &servaddr, ap))
+  if (MHD_YES != parse_options_va (daemon, &servaddr, ap))
     {
 #if HTTPS_SUPPORT
       if ( (0 != (options & MHD_USE_SSL)) &&
-          (NULL != retVal->priority_cache) )
-       gnutls_priority_deinit (retVal->priority_cache);
+          (NULL != daemon->priority_cache) )
+       gnutls_priority_deinit (daemon->priority_cache);
 #endif
-      free (retVal);
+      free (daemon);
       return NULL;
     }
 
 #ifdef DAUTH_SUPPORT
-  if (retVal->nonce_nc_size > 0) 
+  if (daemon->nonce_nc_size > 0) 
     {
-      if ( ( (size_t) (retVal->nonce_nc_size * sizeof(struct MHD_NonceNc))) / 
-          sizeof(struct MHD_NonceNc) != retVal->nonce_nc_size)
+      if ( ( (size_t) (daemon->nonce_nc_size * sizeof(struct MHD_NonceNc))) / 
+          sizeof(struct MHD_NonceNc) != daemon->nonce_nc_size)
        {
 #if HAVE_MESSAGES
-         MHD_DLOG (retVal,
+         MHD_DLOG (daemon,
                    "Specified value for NC_SIZE too large\n");
 #endif
 #if HTTPS_SUPPORT
          if (options & MHD_USE_SSL)
-           gnutls_priority_deinit (retVal->priority_cache);
+           gnutls_priority_deinit (daemon->priority_cache);
 #endif
-         free (retVal);
+         free (daemon);
          return NULL;    
        }
-      retVal->nnc = malloc (retVal->nonce_nc_size * sizeof(struct 
MHD_NonceNc));
-      if (NULL == retVal->nnc)
+      daemon->nnc = malloc (daemon->nonce_nc_size * sizeof(struct 
MHD_NonceNc));
+      if (NULL == daemon->nnc)
            {
 #if HAVE_MESSAGES
-             MHD_DLOG (retVal,
+             MHD_DLOG (daemon,
                        "Failed to allocate memory for nonce-nc map: %s\n",
                        STRERROR (errno));
 #endif
 #if HTTPS_SUPPORT
              if (options & MHD_USE_SSL)
-               gnutls_priority_deinit (retVal->priority_cache);
+               gnutls_priority_deinit (daemon->priority_cache);
 #endif
-             free (retVal);
+             free (daemon);
              return NULL;
            }
     }
 
-  if (0 != pthread_mutex_init (&retVal->nnc_lock, NULL))
+  if (0 != pthread_mutex_init (&daemon->nnc_lock, NULL))
     {
 #if HAVE_MESSAGES
-      MHD_DLOG (retVal,
+      MHD_DLOG (daemon,
                "MHD failed to initialize nonce-nc mutex\n");
 #endif
 #if HTTPS_SUPPORT
       if (options & MHD_USE_SSL)
-       gnutls_priority_deinit (retVal->priority_cache);
+       gnutls_priority_deinit (daemon->priority_cache);
 #endif
-      free (retVal->nnc);
-      free (retVal);
+      free (daemon->nnc);
+      free (daemon);
       return NULL;
     }
 #endif
 
   /* Thread pooling currently works only with internal select thread model */
   if ( (0 == (options & MHD_USE_SELECT_INTERNALLY)) && 
-       (retVal->worker_pool_size > 0) )
+       (daemon->worker_pool_size > 0) )
     {
 #if HAVE_MESSAGES
-      MHD_DLOG (retVal,
+      MHD_DLOG (daemon,
                "MHD thread pooling only works with 
MHD_USE_SELECT_INTERNALLY\n");
 #endif
       goto free_and_fail;
@@ -2280,14 +2274,14 @@
   if (0 != (options & (MHD_USE_SELECT_INTERNALLY | 
MHD_USE_THREAD_PER_CONNECTION)))
     {
 #if HAVE_MESSAGES
-      MHD_DLOG (retVal,
+      MHD_DLOG (daemon,
                "Threaded operations are not supported on Symbian.\n");
 #endif
       goto free_and_fail;
     }
 #endif
-  if ( (-1 == retVal->socket_fd) &&
-       (0 == (retVal->options & MHD_USE_NO_LISTEN_SOCKET)) )
+  if ( (-1 == daemon->socket_fd) &&
+       (0 == (daemon->options & MHD_USE_NO_LISTEN_SOCKET)) )
     {
       /* try to open listen socket */
       if ((options & MHD_USE_IPv6) != 0)
@@ -2296,7 +2290,7 @@
 #else
       {
 #if HAVE_MESSAGES
-       MHD_DLOG (retVal, 
+       MHD_DLOG (daemon, 
                  "AF_INET6 not supported\n");
 #endif
        goto free_and_fail;
@@ -2304,11 +2298,11 @@
 #endif
       else
        socket_fd = create_socket (PF_INET, SOCK_STREAM, 0);
-      if (socket_fd == -1)
+      if (-1 == socket_fd)
        {
 #if HAVE_MESSAGES
-         if ((options & MHD_USE_DEBUG) != 0)
-           MHD_DLOG (retVal, 
+         if (0 != (options & MHD_USE_DEBUG))
+           MHD_DLOG (daemon, 
                      "Call to socket failed: %s\n", 
                      STRERROR (errno));
 #endif
@@ -2320,7 +2314,7 @@
                       &on, sizeof (on)) < 0) && ((options & MHD_USE_DEBUG) != 
0))
        {
 #if HAVE_MESSAGES
-         MHD_DLOG (retVal, 
+         MHD_DLOG (daemon, 
                    "setsockopt failed: %s\n", 
                    STRERROR (errno));
 #endif
@@ -2328,7 +2322,7 @@
       
       /* check for user supplied sockaddr */
 #if HAVE_INET6
-      if ((options & MHD_USE_IPv6) != 0)
+      if (0 != (options & MHD_USE_IPv6))
        addrlen = sizeof (struct sockaddr_in6);
       else
 #endif
@@ -2336,7 +2330,7 @@
       if (NULL == servaddr)
        {
 #if HAVE_INET6
-         if ((options & MHD_USE_IPv6) != 0)
+         if (0 != (options & MHD_USE_IPv6))
            {
              memset (&servaddr6, 0, sizeof (struct sockaddr_in6));
              servaddr6.sin6_family = AF_INET6;
@@ -2358,9 +2352,9 @@
              servaddr = (struct sockaddr *) &servaddr4;
            }
        }
-      retVal->socket_fd = socket_fd;
+      daemon->socket_fd = socket_fd;
 
-      if ((options & MHD_USE_IPv6) != 0)
+      if (0 != (options & MHD_USE_IPv6))
        {
 #ifdef IPPROTO_IPV6
 #ifdef IPV6_V6ONLY
@@ -2382,11 +2376,11 @@
 #endif
 #endif
        }
-      if (BIND (socket_fd, servaddr, addrlen) == -1)
+      if (-1 == BIND (socket_fd, servaddr, addrlen))
        {
 #if HAVE_MESSAGES
-         if ((options & MHD_USE_DEBUG) != 0)
-           MHD_DLOG (retVal,
+         if (0 != (options & MHD_USE_DEBUG))
+           MHD_DLOG (daemon,
                      "Failed to bind to port %u: %s\n", 
                      (unsigned int) port, 
                      STRERROR (errno));
@@ -2398,8 +2392,8 @@
       if (LISTEN (socket_fd, 20) < 0)
        {
 #if HAVE_MESSAGES
-         if ((options & MHD_USE_DEBUG) != 0)
-           MHD_DLOG (retVal,
+         if (0 != (options & MHD_USE_DEBUG))
+           MHD_DLOG (daemon,
                      "Failed to listen for connections: %s\n", 
                      STRERROR (errno));
 #endif
@@ -2409,7 +2403,7 @@
     }
   else
     {
-      socket_fd = retVal->socket_fd;
+      socket_fd = daemon->socket_fd;
     }
 #ifndef WINDOWS
   if ( (socket_fd >= FD_SETSIZE) &&
@@ -2417,7 +2411,7 @@
     {
 #if HAVE_MESSAGES
       if ((options & MHD_USE_DEBUG) != 0)
-        MHD_DLOG (retVal,
+        MHD_DLOG (daemon,
                  "Socket descriptor larger than FD_SETSIZE: %d > %d\n",
                  socket_fd,
                  FD_SETSIZE);
@@ -2427,23 +2421,23 @@
     }
 #endif
 
-  if (0 != pthread_mutex_init (&retVal->per_ip_connection_mutex, NULL))
+  if (0 != pthread_mutex_init (&daemon->per_ip_connection_mutex, NULL))
     {
 #if HAVE_MESSAGES
-      MHD_DLOG (retVal,
+      MHD_DLOG (daemon,
                "MHD failed to initialize IP connection limit mutex\n");
 #endif
       if (-1 != socket_fd)
        CLOSE (socket_fd);
       goto free_and_fail;
     }
-  if (0 != pthread_mutex_init (&retVal->cleanup_connection_mutex, NULL))
+  if (0 != pthread_mutex_init (&daemon->cleanup_connection_mutex, NULL))
     {
 #if HAVE_MESSAGES
-      MHD_DLOG (retVal,
+      MHD_DLOG (daemon,
                "MHD failed to initialize IP connection limit mutex\n");
 #endif
-      pthread_mutex_destroy (&retVal->cleanup_connection_mutex);
+      pthread_mutex_destroy (&daemon->cleanup_connection_mutex);
       if (-1 != socket_fd)
        CLOSE (socket_fd);
       goto free_and_fail;
@@ -2451,39 +2445,39 @@
 
 #if HTTPS_SUPPORT
   /* initialize HTTPS daemon certificate aspects & send / recv functions */
-  if ((0 != (options & MHD_USE_SSL)) && (0 != MHD_TLS_init (retVal)))
+  if ((0 != (options & MHD_USE_SSL)) && (0 != MHD_TLS_init (daemon)))
     {
 #if HAVE_MESSAGES
-      MHD_DLOG (retVal, 
+      MHD_DLOG (daemon, 
                "Failed to initialize TLS support\n");
 #endif
       if (-1 != socket_fd)
        CLOSE (socket_fd);
-      pthread_mutex_destroy (&retVal->cleanup_connection_mutex);
-      pthread_mutex_destroy (&retVal->per_ip_connection_mutex);
+      pthread_mutex_destroy (&daemon->cleanup_connection_mutex);
+      pthread_mutex_destroy (&daemon->per_ip_connection_mutex);
       goto free_and_fail;
     }
 #endif
   if ( ( (0 != (options & MHD_USE_THREAD_PER_CONNECTION)) ||
         ( (0 != (options & MHD_USE_SELECT_INTERNALLY)) &&
-          (0 == retVal->worker_pool_size)) ) && 
-       (0 == (retVal->options & MHD_USE_NO_LISTEN_SOCKET)) &&
+          (0 == daemon->worker_pool_size)) ) && 
+       (0 == (daemon->options & MHD_USE_NO_LISTEN_SOCKET)) &&
        (0 != (res_thread_create =
-             create_thread (&retVal->pid, retVal, &MHD_select_thread, 
retVal))))
+             create_thread (&daemon->pid, daemon, &MHD_select_thread, 
daemon))))
     {
 #if HAVE_MESSAGES
-      MHD_DLOG (retVal,
+      MHD_DLOG (daemon,
                 "Failed to create listen thread: %s\n", 
                STRERROR (res_thread_create));
 #endif
-      pthread_mutex_destroy (&retVal->cleanup_connection_mutex);
-      pthread_mutex_destroy (&retVal->per_ip_connection_mutex);
+      pthread_mutex_destroy (&daemon->cleanup_connection_mutex);
+      pthread_mutex_destroy (&daemon->per_ip_connection_mutex);
       if (-1 != socket_fd)
        CLOSE (socket_fd);
       goto free_and_fail;
     }
-  if ( (retVal->worker_pool_size > 0) &&
-       (0 == (retVal->options & MHD_USE_NO_LISTEN_SOCKET)) )
+  if ( (daemon->worker_pool_size > 0) &&
+       (0 == (daemon->options & MHD_USE_NO_LISTEN_SOCKET)) )
     {
 #ifndef MINGW
       int sk_flags;
@@ -2494,10 +2488,10 @@
       /* Coarse-grained count of connections per thread (note error
        * due to integer division). Also keep track of how many
        * connections are leftover after an equal split. */
-      unsigned int conns_per_thread = retVal->max_connections
-                                      / retVal->worker_pool_size;
-      unsigned int leftover_conns = retVal->max_connections
-                                    % retVal->worker_pool_size;
+      unsigned int conns_per_thread = daemon->max_connections
+                                      / daemon->worker_pool_size;
+      unsigned int leftover_conns = daemon->max_connections
+                                    % daemon->worker_pool_size;
 
       i = 0; /* we need this in case fcntl or malloc fails */
 
@@ -2513,8 +2507,8 @@
 #else
       sk_flags = 1;
 #if HAVE_PLIBC_FD
-      if (ioctlsocket (plibc_fd_get_handle (socket_fd), FIONBIO, &sk_flags) ==
-          SOCKET_ERROR)
+      if (SOCKET_ERROR ==
+         ioctlsocket (plibc_fd_get_handle (socket_fd), FIONBIO, &sk_flags))
 #else
       if (ioctlsocket (socket_fd, FIONBIO, &sk_flags) == SOCKET_ERROR)
 #endif // PLIBC_FD
@@ -2522,22 +2516,22 @@
 #endif // MINGW
 
       /* Allocate memory for pooled objects */
-      retVal->worker_pool = malloc (sizeof (struct MHD_Daemon)
-                                    * retVal->worker_pool_size);
-      if (NULL == retVal->worker_pool)
+      daemon->worker_pool = malloc (sizeof (struct MHD_Daemon)
+                                    * daemon->worker_pool_size);
+      if (NULL == daemon->worker_pool)
         goto thread_failed;
 
       /* Start the workers in the pool */
-      for (i = 0; i < retVal->worker_pool_size; ++i)
+      for (i = 0; i < daemon->worker_pool_size; ++i)
         {
           /* Create copy of the Daemon object for each worker */
-          struct MHD_Daemon *d = &retVal->worker_pool[i];
-          memcpy (d, retVal, sizeof (struct MHD_Daemon));
+          struct MHD_Daemon *d = &daemon->worker_pool[i];
+          memcpy (d, daemon, sizeof (struct MHD_Daemon));
 
           /* Adjust pooling params for worker daemons; note that memcpy()
              has already copied MHD_USE_SELECT_INTERNALLY thread model into
              the worker threads. */
-          d->master = retVal;
+          d->master = daemon;
           d->worker_pool_size = 0;
           d->worker_pool = NULL;
 
@@ -2549,10 +2543,10 @@
             ++d->max_connections;
 
           /* Spawn the worker thread */
-          if (0 != (res_thread_create = create_thread (&d->pid, retVal, 
&MHD_select_thread, d)))
+          if (0 != (res_thread_create = create_thread (&d->pid, daemon, 
&MHD_select_thread, d)))
             {
 #if HAVE_MESSAGES
-              MHD_DLOG (retVal,
+              MHD_DLOG (daemon,
                         "Failed to create pool thread: %s\n", 
                        STRERROR (res_thread_create));
 #endif
@@ -2562,21 +2556,21 @@
             }
         }
     }
-  return retVal;
+  return daemon;
 
 thread_failed:
   /* If no worker threads created, then shut down normally. Calling
      MHD_stop_daemon (as we do below) doesn't work here since it
      assumes a 0-sized thread pool means we had been in the default
      MHD_USE_SELECT_INTERNALLY mode. */
-  if (i == 0)
+  if (0 == i)
     {
       if (-1 != socket_fd)
        CLOSE (socket_fd);
-      pthread_mutex_destroy (&retVal->cleanup_connection_mutex);
-      pthread_mutex_destroy (&retVal->per_ip_connection_mutex);
-      if (NULL != retVal->worker_pool)
-        free (retVal->worker_pool);
+      pthread_mutex_destroy (&daemon->cleanup_connection_mutex);
+      pthread_mutex_destroy (&daemon->per_ip_connection_mutex);
+      if (NULL != daemon->worker_pool)
+        free (daemon->worker_pool);
       goto free_and_fail;
     }
 
@@ -2584,22 +2578,22 @@
      as though we had fully initialized our daemon, but
      with a smaller number of threads than had been
      requested. */
-  retVal->worker_pool_size = i - 1;
-  MHD_stop_daemon (retVal);
+  daemon->worker_pool_size = i - 1;
+  MHD_stop_daemon (daemon);
   return NULL;
 
  free_and_fail:
-  /* clean up basic memory state in 'retVal' and return NULL to 
+  /* clean up basic memory state in 'daemon' and return NULL to 
      indicate failure */
 #ifdef DAUTH_SUPPORT
-  free (retVal->nnc);
-  pthread_mutex_destroy (&retVal->nnc_lock);
+  free (daemon->nnc);
+  pthread_mutex_destroy (&daemon->nnc_lock);
 #endif
 #if HTTPS_SUPPORT
-  if (options & MHD_USE_SSL)
-    gnutls_priority_deinit (retVal->priority_cache);
+  if (0 != (options & MHD_USE_SSL))
+    gnutls_priority_deinit (daemon->priority_cache);
 #endif
-  free (retVal);
+  free (daemon);
   return NULL;
 }
 
@@ -2627,7 +2621,7 @@
 #endif
       abort();
     }
-  for (pos = daemon->connections_head; pos != NULL; pos = pos->next)    
+  for (pos = daemon->connections_head; NULL != pos; pos = pos->next)    
     SHUTDOWN (pos->socket_fd, 
              (pos->read_closed == MHD_YES) ? SHUT_WR : SHUT_RDWR);    
   if (0 != pthread_mutex_unlock(&daemon->cleanup_connection_mutex))
@@ -2684,7 +2678,7 @@
   unsigned int i;
   int rc;
 
-  if (daemon == NULL)
+  if (NULL == daemon)
     return;
   daemon->shutdown = MHD_YES;
   fd = daemon->socket_fd;
@@ -2699,7 +2693,7 @@
          daemon->worker_pool[i].socket_fd = -1;
        }
     }
-  if (daemon->wpipe[1] != -1)
+  if (-1 != daemon->wpipe[1])
     {
       WRITE (daemon->wpipe[1], "e", 1);
     }

Modified: libmicrohttpd/src/daemon/reason_phrase.c
===================================================================
--- libmicrohttpd/src/daemon/reason_phrase.c    2012-07-17 20:40:39 UTC (rev 
22732)
+++ libmicrohttpd/src/daemon/reason_phrase.c    2012-07-17 21:52:26 UTC (rev 
22733)
@@ -151,7 +151,9 @@
 const char *
 MHD_get_reason_phrase_for (unsigned int code)
 {
-  if ((code >= 100 && code < 600) && (reasons[code / 100].max > code % 100))
+  if ( (code >= 100) && 
+       (code < 600) && 
+       (reasons[code / 100].max > (code % 100)) )
     return reasons[code / 100].data[code % 100];
   return "Unknown";
 }

Modified: libmicrohttpd/src/daemon/response.c
===================================================================
--- libmicrohttpd/src/daemon/response.c 2012-07-17 20:40:39 UTC (rev 22732)
+++ libmicrohttpd/src/daemon/response.c 2012-07-17 21:52:26 UTC (rev 22733)
@@ -45,28 +45,26 @@
 {
   struct MHD_HTTP_Header *hdr;
 
-  if ((response == NULL) ||
-      (header == NULL) ||
-      (content == NULL) ||
-      (strlen (header) == 0) ||
-      (strlen (content) == 0) ||
-      (NULL != strstr (header, "\t")) ||
-      (NULL != strstr (header, "\r")) ||
-      (NULL != strstr (header, "\n")) ||
-      (NULL != strstr (content, "\t")) ||
-      (NULL != strstr (content, "\r")) || (NULL != strstr (content, "\n")))
+  if ( (NULL == response) ||
+       (NULL == header) ||
+       (NULL == content) ||
+       (0 == strlen (header)) ||
+       (0 == strlen (content)) ||
+       (NULL != strstr (header, "\t")) ||
+       (NULL != strstr (header, "\r")) ||
+       (NULL != strstr (header, "\n")) ||
+       (NULL != strstr (content, "\t")) ||
+       (NULL != strstr (content, "\r")) || 
+       (NULL != strstr (content, "\n")) )
     return MHD_NO;
-  hdr = malloc (sizeof (struct MHD_HTTP_Header));
-  if (hdr == NULL)
+  if (NULL == (hdr = malloc (sizeof (struct MHD_HTTP_Header))))
     return MHD_NO;
-  hdr->header = strdup (header);
-  if (hdr->header == NULL)
+  if (NULL == (hdr->header = strdup (header)))
     {
       free (hdr);
       return MHD_NO;
     }
-  hdr->value = strdup (content);
-  if (hdr->value == NULL)
+  if (NULL == (hdr->value = strdup (content)))
     {
       free (hdr->header);
       free (hdr);
@@ -132,7 +130,7 @@
   struct MHD_HTTP_Header *pos;
   struct MHD_HTTP_Header *prev;
 
-  if ((header == NULL) || (content == NULL))
+  if ( (NULL == header) || (NULL == content) )
     return MHD_NO;
   prev = NULL;
   pos = response->first_header;
@@ -143,7 +141,7 @@
         {
           free (pos->header);
           free (pos->value);
-          if (prev == NULL)
+          if (NULL == prev)
             response->first_header = pos->next;
           else
             prev->next = pos->next;
@@ -171,15 +169,14 @@
 {
   struct MHD_HTTP_Header *pos;
   int numHeaders = 0;
-  pos = response->first_header;
-  while (pos != NULL)
+
+  for (pos = response->first_header; NULL != pos; pos = pos->next)
     {
       numHeaders++;
-      if ((iterator != NULL) &&
+      if ((NULL != iterator) &&
           (MHD_YES != iterator (iterator_cls,
                                 pos->kind, pos->header, pos->value)))
         break;
-      pos = pos->next;
     }
   return numHeaders;
 }
@@ -196,15 +193,11 @@
 {
   struct MHD_HTTP_Header *pos;
 
-  if (key == NULL)
+  if (NULL == key)
     return NULL;
-  pos = response->first_header;
-  while (pos != NULL)
-    {
-      if (0 == strcmp (key, pos->header))
-        return pos->value;
-      pos = pos->next;
-    }
+  for (pos = response->first_header; NULL != pos; pos = pos->next)
+    if (0 == strcmp (key, pos->header))
+      return pos->value;
   return NULL;
 }
 
@@ -231,28 +224,27 @@
                                    void *crc_cls,
                                    MHD_ContentReaderFreeCallback crfc)
 {
-  struct MHD_Response *retVal;
+  struct MHD_Response *response;
 
-  if ((crc == NULL) || (block_size == 0))
+  if ((NULL == crc) || (0 == block_size))
     return NULL;
-  retVal = malloc (sizeof (struct MHD_Response) + block_size);
-  if (retVal == NULL)
+  if (NULL == (response = malloc (sizeof (struct MHD_Response) + block_size)))
     return NULL;
-  memset (retVal, 0, sizeof (struct MHD_Response));
-  retVal->fd = -1;
-  retVal->data = (void *) &retVal[1];
-  retVal->data_buffer_size = block_size;
-  if (pthread_mutex_init (&retVal->mutex, NULL) != 0)
+  memset (response, 0, sizeof (struct MHD_Response));
+  response->fd = -1;
+  response->data = (void *) &response[1];
+  response->data_buffer_size = block_size;
+  if (0 != pthread_mutex_init (&response->mutex, NULL))
     {
-      free (retVal);
+      free (response);
       return NULL;
     }
-  retVal->crc = crc;
-  retVal->crfc = crfc;
-  retVal->crc_cls = crc_cls;
-  retVal->reference_count = 1;
-  retVal->total_size = size;
-  return retVal;
+  response->crc = crc;
+  response->crfc = crfc;
+  response->crc_cls = crc_cls;
+  response->reference_count = 1;
+  response->total_size = size;
+  return response;
 }
 
 
@@ -274,7 +266,7 @@
 
   (void) lseek (response->fd, pos + response->fd_off, SEEK_SET);
   n = read (response->fd, buf, max);
-  if (n == 0) 
+  if (0 == n) 
     return MHD_CONTENT_READER_END_OF_STREAM;
   if (n < 0) 
     return MHD_CONTENT_READER_END_WITH_ERROR;
@@ -292,6 +284,7 @@
 free_callback (void *cls)
 {
   struct MHD_Response *response = cls;
+
   (void) close (response->fd);
   response->fd = -1;
 }
@@ -310,24 +303,22 @@
                                                            int fd,
                                                            off_t offset)
 {
-  struct MHD_Response *ret;
+  struct MHD_Response *response;
 
-  ret = MHD_create_response_from_callback (size,
-                                          4 * 1024,
-                                          &file_reader,
-                                          NULL,
-                                          &free_callback);
-  if (ret == NULL)
+  response = MHD_create_response_from_callback (size,
+                                               4 * 1024,
+                                               &file_reader,
+                                               NULL,
+                                               &free_callback);
+  if (NULL == response)
     return NULL;
-  ret->fd = fd;
-  ret->fd_off = offset;
-  ret->crc_cls = ret;
-  return ret;
+  response->fd = fd;
+  response->fd_off = offset;
+  response->crc_cls = response;
+  return response;
 }
 
 
-
-
 /**
  * Create a response object.  The response object can be extended with
  * header information and then be used any number of times.
@@ -360,42 +351,40 @@
 MHD_create_response_from_data (size_t size,
                                void *data, int must_free, int must_copy)
 {
-  struct MHD_Response *retVal;
+  struct MHD_Response *response;
   void *tmp;
 
-  if ((data == NULL) && (size > 0))
+  if ((NULL == data) && (size > 0))
     return NULL;
-  retVal = malloc (sizeof (struct MHD_Response));
-  if (retVal == NULL)
+  if (NULL == (response = malloc (sizeof (struct MHD_Response))))
     return NULL;
-  memset (retVal, 0, sizeof (struct MHD_Response));
-  retVal->fd = -1;
-  if (pthread_mutex_init (&retVal->mutex, NULL) != 0)
+  memset (response, 0, sizeof (struct MHD_Response));
+  response->fd = -1;
+  if (0 != pthread_mutex_init (&response->mutex, NULL))
     {
-      free (retVal);
+      free (response);
       return NULL;
     }
   if ((must_copy) && (size > 0))
     {
-      tmp = malloc (size);
-      if (tmp == NULL)
+      if (NULL == (tmp = malloc (size)))
         {
-         pthread_mutex_destroy (&retVal->mutex);
-          free (retVal);
+         pthread_mutex_destroy (&response->mutex);
+          free (response);
           return NULL;
         }
       memcpy (tmp, data, size);
       must_free = MHD_YES;
       data = tmp;
     }
-  retVal->crc = NULL;
-  retVal->crfc = must_free ? &free : NULL;
-  retVal->crc_cls = must_free ? data : NULL;
-  retVal->reference_count = 1;
-  retVal->total_size = size;
-  retVal->data = data;
-  retVal->data_size = size;
-  return retVal;
+  response->crc = NULL;
+  response->crfc = must_free ? &free : NULL;
+  response->crc_cls = must_free ? data : NULL;
+  response->reference_count = 1;
+  response->total_size = size;
+  response->data = data;
+  response->data_size = size;
+  return response;
 }
 
 
@@ -431,7 +420,7 @@
 {
   struct MHD_HTTP_Header *pos;
 
-  if (response == NULL)
+  if (NULL == response)
     return;
   pthread_mutex_lock (&response->mutex);
   if (0 != --(response->reference_count))
@@ -443,7 +432,7 @@
   pthread_mutex_destroy (&response->mutex);
   if (response->crfc != NULL)
     response->crfc (response->crc_cls);
-  while (response->first_header != NULL)
+  while (NULL != response->first_header)
     {
       pos = response->first_header;
       response->first_header = pos->next;

Modified: libmicrohttpd/src/include/microhttpd.h
===================================================================
--- libmicrohttpd/src/include/microhttpd.h      2012-07-17 20:40:39 UTC (rev 
22732)
+++ libmicrohttpd/src/include/microhttpd.h      2012-07-17 21:52:26 UTC (rev 
22733)
@@ -1245,7 +1245,7 @@
  *
  * @param connection connection to get values from
  * @param kind what kind of value are we looking for
- * @param key the header to look for
+ * @param key the header to look for, NULL to lookup 'trailing' value without 
a key
  * @return NULL if no such item was found
  */
 const char *




reply via email to

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