gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r28432 - in libmicrohttpd/src: examples include microhttpd


From: gnunet
Subject: [GNUnet-SVN] r28432 - in libmicrohttpd/src: examples include microhttpd microspdy spdy2http testcurl testspdy
Date: Wed, 7 Aug 2013 11:04:37 +0200

Author: grothoff
Date: 2013-08-07 11:04:37 +0200 (Wed, 07 Aug 2013)
New Revision: 28432

Modified:
   libmicrohttpd/src/examples/Makefile.am
   libmicrohttpd/src/include/platform.h
   libmicrohttpd/src/microhttpd/connection.c
   libmicrohttpd/src/microhttpd/daemon.c
   libmicrohttpd/src/microhttpd/memorypool.c
   libmicrohttpd/src/microspdy/Makefile.am
   libmicrohttpd/src/spdy2http/Makefile.am
   libmicrohttpd/src/testcurl/test_options.c
   libmicrohttpd/src/testspdy/Makefile.am
Log:
-reverting removal of Plibc, select on pipes problem is critial

Modified: libmicrohttpd/src/examples/Makefile.am
===================================================================
--- libmicrohttpd/src/examples/Makefile.am      2013-08-07 08:47:33 UTC (rev 
28431)
+++ libmicrohttpd/src/examples/Makefile.am      2013-08-07 09:04:37 UTC (rev 
28432)
@@ -60,7 +60,7 @@
 endif
 
 if HAVE_W32
-AM_CFLAGS += -DWINDOWS
+AM_CFLAGS = -DWINDOWS
 endif
 
 minimal_example_SOURCES = \

Modified: libmicrohttpd/src/include/platform.h
===================================================================
--- libmicrohttpd/src/include/platform.h        2013-08-07 08:47:33 UTC (rev 
28431)
+++ libmicrohttpd/src/include/platform.h        2013-08-07 09:04:37 UTC (rev 
28432)
@@ -109,32 +109,7 @@
 #include <arpa/inet.h>
 #endif
 
-#ifndef WINDOWS
+#include <plibc.h>
 
-#define DIR_SEPARATOR '/'
-#define DIR_SEPARATOR_STR "/"
-#define PATH_SEPARATOR ':'
-#define PATH_SEPARATOR_STR ":"
-#define NEWLINE "\n"
 
-#else /* ifndef WINDOWS */
-
-#include <ws2tcpip.h>
-#include <windows.h>
-
-#define DIR_SEPARATOR '\\'
-#define DIR_SEPARATOR_STR "\\"
-#define PATH_SEPARATOR ';'
-#define PATH_SEPARATOR_STR ";"
-#define NEWLINE "\r\n"
-
-#define SHUT_WR SD_SEND
-#define SHUT_RD SD_RECEIVE
-#define SHUT_RDWR SD_BOTH
-
-#define SetErrnoFromWinError(e) _SetErrnoFromWinError(e, __FILE__, __LINE__)
-
-#endif /* ifndef WINDOWS */
-
-
 #endif

Modified: libmicrohttpd/src/microhttpd/connection.c
===================================================================
--- libmicrohttpd/src/microhttpd/connection.c   2013-08-07 08:47:33 UTC (rev 
28431)
+++ libmicrohttpd/src/microhttpd/connection.c   2013-08-07 09:04:37 UTC (rev 
28432)
@@ -262,7 +262,7 @@
 
   daemon = connection->daemon;
   if (0 == (connection->daemon->options & MHD_USE_EPOLL_TURBO))
-    shutdown (connection->socket_fd, 
+    SHUTDOWN (connection->socket_fd, 
              (MHD_YES == connection->read_closed) ? SHUT_WR : SHUT_RDWR);
   connection->state = MHD_CONNECTION_CLOSED;
   connection->event_loop_info = MHD_EVENT_LOOP_INFO_CLEANUP;
@@ -566,7 +566,7 @@
             Note that the change from 'SHOULD NOT' to 'MUST NOT' is
             a recent development of the HTTP 1.1 specification.
          */
-         sprintf (buf,
+         SPRINTF (buf,
                   MHD_UNSIGNED_LONG_LONG_PRINTF,
                   (MHD_UNSIGNED_LONG_LONG) connection->response->total_size);
          MHD_add_response_header (connection->response,
@@ -598,19 +598,15 @@
   time_t t;
 
   time (&t);
-#ifndef WINDOWS
   gmtime_r (&t, &now);
-#else
-  gmtime_s (&now, &t);
-#endif
-  sprintf (date,
+  SPRINTF (date,
            "Date: %3s, %02u %3s %04u %02u:%02u:%02u GMT\r\n",
            days[now.tm_wday % 7],
            (unsigned int) now.tm_mday,
            mons[now.tm_mon % 12],
            (unsigned int) (1900 + now.tm_year),
-          (unsigned int) now.tm_hour,
-          (unsigned int) now.tm_min,
+          (unsigned int) now.tm_hour, 
+          (unsigned int) now.tm_min, 
           (unsigned int) now.tm_sec);
 }
 
@@ -685,21 +681,21 @@
       add_extra_headers (connection);
       rc = connection->responseCode & (~MHD_ICY_FLAG);
       reason_phrase = MHD_get_reason_phrase_for (rc);
-      sprintf (code,
+      SPRINTF (code,
                "%s %u %s\r\n",
               (0 != (connection->responseCode & MHD_ICY_FLAG))
-              ? "ICY"
+              ? "ICY" 
               : ( (0 == strcasecmp (MHD_HTTP_VERSION_1_0,
-                                    connection->version))
-                  ? MHD_HTTP_VERSION_1_0
+                                    connection->version)) 
+                  ? MHD_HTTP_VERSION_1_0 
                   : MHD_HTTP_VERSION_1_1),
-              rc,
+              rc, 
               reason_phrase);
       off = strlen (code);
       /* estimate size */
       size = off + 2;           /* extra \r\n at the end */
       kind = MHD_HEADER_KIND;
-      if ( (0 == (connection->daemon->options & MHD_SUPPRESS_DATE_NO_CLOCK)) &&
+      if ( (0 == (connection->daemon->options & MHD_SUPPRESS_DATE_NO_CLOCK)) 
&& 
           (NULL == MHD_get_response_header (connection->response,
                                             MHD_HTTP_HEADER_DATE)) )
         get_date_string (date);
@@ -749,9 +745,9 @@
     }
   for (pos = connection->response->first_header; NULL != pos; pos = pos->next)
     if (pos->kind == kind)
-      off += sprintf (&data[off],
+      off += SPRINTF (&data[off], 
                      "%s: %s\r\n",
-                     pos->header,
+                     pos->header, 
                      pos->value);
   if (connection->state == MHD_CONNECTION_FOOTERS_RECEIVED)
     {
@@ -1511,9 +1507,9 @@
                  "Failed to receive data: %s\n",
                  gnutls_strerror (bytes_read));
       else
-#endif
+#endif      
        MHD_DLOG (connection->daemon,
-                 "Failed to receive data: %s\n", strerror (errno));
+                 "Failed to receive data: %s\n", STRERROR (errno));
 #endif
       CONNECTION_CLOSE_ERROR (connection, NULL);
       return MHD_YES;
@@ -1524,7 +1520,7 @@
       connection->read_closed = MHD_YES;
       /* shutdown is not required here, as the other side already
         knows; so flagging this internally should suffice */
-      /* shutdown (connection->socket_fd, SHUT_RD); */
+      /* SHUTDOWN (connection->socket_fd, SHUT_RD); */
       return MHD_YES;
     }
   connection->read_buffer_offset += bytes_read;
@@ -1560,9 +1556,9 @@
                  "Failed to send data: %s\n",
                  gnutls_strerror (ret));
       else
-#endif
+#endif      
        MHD_DLOG (connection->daemon,
-                 "Failed to send data: %s\n", strerror (errno));
+                 "Failed to send data: %s\n", STRERROR (errno));
 #endif
       CONNECTION_CLOSE_ERROR (connection, NULL);
       return MHD_YES;
@@ -1918,7 +1914,7 @@
                 break;
 #if HAVE_MESSAGES
               MHD_DLOG (connection->daemon,
-                        "Failed to send data: %s\n", strerror (errno));
+                        "Failed to send data: %s\n", STRERROR (errno));
 #endif
              CONNECTION_CLOSE_ERROR (connection, NULL);
               return MHD_YES;
@@ -1980,7 +1976,7 @@
                 return MHD_YES;
 #if HAVE_MESSAGES
               MHD_DLOG (connection->daemon,
-                        "Failed to send data: %s\n", strerror (errno));
+                        "Failed to send data: %s\n", STRERROR (errno));
 #endif
              CONNECTION_CLOSE_ERROR (connection, NULL);
               return MHD_YES;
@@ -2531,7 +2527,7 @@
          if (0 != (daemon->options & MHD_USE_DEBUG))
            MHD_DLOG (daemon, 
                      "Call to epoll_ctl failed: %s\n", 
-                     strerror (errno));
+                     STRERROR (errno));
 #endif
          connection->state = MHD_CONNECTION_CLOSED;
          cleanup_connection (connection);
@@ -2690,7 +2686,7 @@
          refuse to read body / footers or further
          requests! */
       if (0 == (connection->daemon->options & MHD_USE_EPOLL_TURBO))
-       (void) shutdown (connection->socket_fd, SHUT_RD);
+       (void) SHUTDOWN (connection->socket_fd, SHUT_RD);
       connection->read_closed = MHD_YES;
       connection->state = MHD_CONNECTION_FOOTERS_RECEIVED;
     }

Modified: libmicrohttpd/src/microhttpd/daemon.c
===================================================================
--- libmicrohttpd/src/microhttpd/daemon.c       2013-08-07 08:47:33 UTC (rev 
28431)
+++ libmicrohttpd/src/microhttpd/daemon.c       2013-08-07 09:04:37 UTC (rev 
28432)
@@ -294,14 +294,14 @@
   MHD_ip_count_lock (daemon);
 
   /* Search for the IP address */
-  if (NULL == (nodep = tsearch (key,
-                               &daemon->per_ip_connection_count,
+  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");
-#endif
+#endif      
       MHD_ip_count_unlock (daemon);
       free (key);
       return MHD_NO;
@@ -350,10 +350,10 @@
   MHD_ip_count_lock (daemon);
 
   /* Search for the IP address */
-  if (NULL == (nodep = tfind (&search_key,
-                             &daemon->per_ip_connection_count,
+  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 */
       MHD_PANIC ("Failed to find previously-added IP address\n");
@@ -367,8 +367,8 @@
   /* Remove the node entirely if count reduces to 0 */
   if (0 == --found_key->count)
     {
-      tdelete (found_key,
-              &daemon->per_ip_connection_count,
+      TDELETE (found_key, 
+              &daemon->per_ip_connection_count, 
               &MHD_ip_addr_compare);
       free (found_key);
     }
@@ -696,7 +696,7 @@
              /* how did we get here!? */
              goto exit;
            }
-         num_ready = select (max + 1, &rs, &ws, NULL, tvp);
+         num_ready = SELECT (max + 1, &rs, &ws, NULL, tvp);
          if (num_ready < 0) 
            {
              if (EINTR == errno)
@@ -705,7 +705,7 @@
              MHD_DLOG (con->daemon,
                        "Error during select (%d): `%s'\n", 
                        max,
-                       strerror (errno));
+                       STRERROR (errno));
 #endif
              break;
            }
@@ -751,7 +751,7 @@
                continue;
 #if HAVE_MESSAGES
              MHD_DLOG (con->daemon, "Error during poll: `%s'\n", 
-                       strerror (errno));
+                       STRERROR (errno));
 #endif
              break;
            }
@@ -814,7 +814,7 @@
       errno = ENOTCONN;
       return -1;
     }
-  ret = recv (connection->socket_fd, other, i, MSG_NOSIGNAL);
+  ret = RECV (connection->socket_fd, other, i, MSG_NOSIGNAL);
 #if EPOLL_SUPPORT
   if (ret < (ssize_t) i)
     {
@@ -853,7 +853,7 @@
       return -1;
     }
   if (0 != (connection->daemon->options & MHD_USE_SSL))
-    return send (connection->socket_fd, other, i, MSG_NOSIGNAL);
+    return SEND (connection->socket_fd, other, i, MSG_NOSIGNAL);
 #if LINUX
   if ( (connection->write_buffer_append_offset ==
        connection->write_buffer_send_offset) &&
@@ -889,7 +889,7 @@
         http://lists.gnu.org/archive/html/libmicrohttpd/2011-02/msg00015.html 
*/
     }
 #endif
-  ret = send (connection->socket_fd, other, i, MSG_NOSIGNAL);
+  ret = SEND (connection->socket_fd, other, i, MSG_NOSIGNAL);
 #if EPOLL_SUPPORT
   if (ret < (ssize_t) i)
     {
@@ -1009,7 +1009,7 @@
                                     client_socket,
                                     addr, addrlen);
       /* all pools are at their connection limit, must refuse */
-      if (0 != close (client_socket))
+      if (0 != CLOSE (client_socket))
        MHD_PANIC ("close failed\n");
       return MHD_NO;      
     }
@@ -1024,7 +1024,7 @@
                client_socket,
                FD_SETSIZE);
 #endif
-      if (0 != close (client_socket))
+      if (0 != CLOSE (client_socket))
        MHD_PANIC ("close failed\n");
       return MHD_NO;
     }
@@ -1044,7 +1044,7 @@
       MHD_DLOG (daemon,
                 "Server reached connection limit (closing inbound 
connection)\n");
 #endif
-      if (0 != close (client_socket))
+      if (0 != CLOSE (client_socket))
        MHD_PANIC ("close failed\n");
       return MHD_NO;
     }
@@ -1059,7 +1059,7 @@
       MHD_DLOG (daemon, "Connection rejected, closing connection\n");
 #endif
 #endif
-      if (0 != close (client_socket))
+      if (0 != CLOSE (client_socket))
        MHD_PANIC ("close failed\n");
       MHD_ip_limit_del (daemon, addr, addrlen);
       return MHD_NO;
@@ -1080,9 +1080,9 @@
 #if HAVE_MESSAGES
       MHD_DLOG (daemon, 
                "Error allocating memory: %s\n", 
-               strerror (errno));
+               STRERROR (errno));
 #endif
-      if (0 != close (client_socket))
+      if (0 != CLOSE (client_socket))
        MHD_PANIC ("close failed\n");
       MHD_ip_limit_del (daemon, addr, addrlen);
       return MHD_NO;
@@ -1094,9 +1094,9 @@
 #if HAVE_MESSAGES
       MHD_DLOG (daemon, 
                "Error allocating memory: %s\n", 
-               strerror (errno));
+               STRERROR (errno));
 #endif
-      if (0 != close (client_socket))
+      if (0 != CLOSE (client_socket))
        MHD_PANIC ("close failed\n");
       MHD_ip_limit_del (daemon, addr, addrlen);
       free (connection);      
@@ -1109,9 +1109,9 @@
 #if HAVE_MESSAGES
       MHD_DLOG (daemon, 
                "Error allocating memory: %s\n", 
-               strerror (errno));
+               STRERROR (errno));
 #endif
-      if (0 != close (client_socket))
+      if (0 != CLOSE (client_socket))
        MHD_PANIC ("close failed\n");
       MHD_ip_limit_del (daemon, addr, addrlen);
       MHD_pool_destroy (connection->pool);
@@ -1149,7 +1149,7 @@
              MHD_DLOG (daemon,
                        "Failed to make socket %d non-blocking: %s\n", 
                        connection->socket_fd,
-                       strerror (errno));
+                       STRERROR (errno));
 #endif
            }
 #else
@@ -1159,7 +1159,7 @@
 #if HAVE_MESSAGES
              MHD_DLOG (daemon, 
                        "Failed to make socket non-blocking: %s\n", 
-                       strerror (errno));
+                       STRERROR (errno));
 #endif
            }
 #endif
@@ -1190,7 +1190,7 @@
                     "Failed to setup TLS credentials: unknown credential type 
%d\n",
                     daemon->cred_type);
 #endif
-          if (0 != close (client_socket))
+          if (0 != CLOSE (client_socket))
            MHD_PANIC ("close failed\n");
           MHD_ip_limit_del (daemon, addr, addrlen);
           free (connection->addr);
@@ -1233,7 +1233,7 @@
         {
 #if HAVE_MESSAGES
           MHD_DLOG (daemon, "Failed to create a thread: %s\n",
-                    strerror (res_thread_create));
+                    STRERROR (res_thread_create));
 #endif
          goto cleanup;
         }
@@ -1256,7 +1256,7 @@
              if (0 != (daemon->options & MHD_USE_DEBUG))
                MHD_DLOG (daemon, 
                          "Call to epoll_ctl failed: %s\n", 
-                         strerror (errno));
+                         STRERROR (errno));
 #endif
              goto cleanup;
            }
@@ -1276,7 +1276,7 @@
   return MHD_YES;  
 #if HTTPS_SUPPORT || EPOLL_SUPPORT
  cleanup:
-  if (0 != close (client_socket))
+  if (0 != CLOSE (client_socket))
     MHD_PANIC ("close failed\n");
   MHD_ip_limit_del (daemon, addr, addrlen);
   if ( (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) &&
@@ -1321,9 +1321,6 @@
 #endif
   struct sockaddr *addr = (struct sockaddr *) &addrstorage;
   socklen_t addrlen;
-#ifdef WINDOWS
-  LPVOID msgBuffer;
-#endif
   int s;
   int fd;
   int nonblock;
@@ -1344,37 +1341,20 @@
 #if HAVE_ACCEPT4
   s = accept4 (fd, addr, &addrlen, SOCK_CLOEXEC | nonblock);
 #else
-  s = accept (fd, addr, &addrlen);
+  s = ACCEPT (fd, addr, &addrlen);
 #endif
   if ((-1 == s) || (addrlen <= 0))
     {
 #if HAVE_MESSAGES
       /* This could be a common occurance with multiple worker threads */
       if ((EAGAIN != errno) && (EWOULDBLOCK != errno))
-      {
-#ifndef WINDOWS
         MHD_DLOG (daemon, 
                  "Error accepting connection: %s\n", 
-                 strerror (errno));
-#else
-        FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER | 
-                      FORMAT_MESSAGE_FROM_SYSTEM |
-                      FORMAT_MESSAGE_IGNORE_INSERTS,
-                      NULL,
-                      (DWORD) GetLastError (),
-                      MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
-                      (LPTSTR) &msgBuffer,
-                      0, NULL);
-        MHD_DLOG (daemon,
-                 "Error accepting connection: %s\n",
-                 msgBuffer);
-        LocalFree (msgBuffer);
+                 STRERROR (errno));
 #endif
-#endif
-      }
       if (-1 != s)
         {
-          if (0 != close (s))
+          if (0 != CLOSE (s))
            MHD_PANIC ("close failed\n");
           /* just in case */
         }
@@ -1390,9 +1370,9 @@
     if (0 != ioctlsocket (s, FIONBIO, &flags))
       {
 #if HAVE_MESSAGES
-       MHD_DLOG (daemon,
-                 "Failed to make socket non-blocking: %s\n",
-                 strerror (errno));
+       MHD_DLOG (daemon, 
+                 "Failed to make socket non-blocking: %s\n", 
+                 STRERROR (errno));
 #endif
       }
     if (!GetHandleInformation ((HANDLE) s, &dwFlags) ||
@@ -1400,18 +1380,10 @@
         !SetHandleInformation ((HANDLE) s, HANDLE_FLAG_INHERIT, 0)))
       {
 #if HAVE_MESSAGES
-        FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | 
-                      FORMAT_MESSAGE_FROM_SYSTEM |
-                      FORMAT_MESSAGE_IGNORE_INSERTS,
-                      NULL,
-                      (DWORD) GetLastError(),
-                      MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                      (LPTSTR) &msgBuffer,
-                      0, NULL );
-        MHD_DLOG (daemon,
-                 "Error accepting connection: %s\n",
-                 msgBuffer);
-        LocalFree(msgBuffer);
+        SetErrnoFromWinError (GetLastError ());
+       MHD_DLOG (daemon,
+                 "Failed to make socket non-inheritable: %s\n", 
+                 STRERROR (errno));
 #endif
       }    
 #else
@@ -1429,8 +1401,8 @@
       {
 #if HAVE_MESSAGES
        MHD_DLOG (daemon,
-                 "Failed to make socket non-inheritable: %s\n",
-                 strerror (errno));
+                 "Failed to make socket non-inheritable: %s\n", 
+                 STRERROR (errno));
 #endif
       }
 #endif
@@ -1513,7 +1485,7 @@
          pos->response = NULL;
        }
       if ( (-1 != pos->socket_fd) &&
-          (0 != close (pos->socket_fd)) )
+          (0 != CLOSE (pos->socket_fd)) )
        MHD_PANIC ("close failed\n");
       if (NULL != pos->addr)
        free (pos->addr);
@@ -1718,14 +1690,7 @@
   struct timeval timeout;
   struct timeval *tv;
   MHD_UNSIGNED_LONG_LONG ltimeout;
-#ifdef WINDOWS
-  LPVOID msgBuffer;
-  DWORD dwBytes;
-#endif
 
-#ifdef WINDOWS
-loop_select:
-#endif
   timeout.tv_sec = 0;
   timeout.tv_usec = 0;
   if (MHD_YES == daemon->shutdown)
@@ -1742,20 +1707,19 @@
 
       /* If we're at the connection limit, no need to
          accept new connections. */
-      if ( (0 == daemon->max_connections) &&
+      if ( (0 == daemon->max_connections) && 
           (-1 != daemon->socket_fd) )
         FD_CLR (daemon->socket_fd, &rs);
     }
   else
     {
       /* accept only, have one thread per connection */
-      if (-1 != daemon->socket_fd)
+      if (-1 != daemon->socket_fd) 
        {
          max = daemon->socket_fd;
          FD_SET (daemon->socket_fd, &rs);
        }
     }
-#ifndef WINDOWS
   if (-1 != daemon->wpipe[0])
     {
       FD_SET (daemon->wpipe[0], &rs);
@@ -1763,18 +1727,12 @@
       if (max < daemon->wpipe[0])
        max = daemon->wpipe[0];
     }
-#endif
 
   tv = NULL;
   if (MHD_NO == may_block)
     {
-#ifndef WINDOWS
       timeout.tv_usec = 0;
-#else
-      timeout.tv_usec = 100000;
-#endif
       timeout.tv_sec = 0;
-
       tv = &timeout;
     }
   else if ( (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) &&
@@ -1787,15 +1745,7 @@
     }
   if (-1 == max)
     return MHD_YES;
-#ifdef WINDOWS
-  if (tv == NULL)
-    {
-      timeout.tv_usec = 100000;
-      timeout.tv_sec = 0;
-      tv = &timeout;
-    }
-#endif
-  num_ready = select (max + 1, &rs, &ws, &es, tv);
+  num_ready = SELECT (max + 1, &rs, &ws, &es, tv);
   if (MHD_YES == daemon->shutdown)
     return MHD_NO;
   if (num_ready < 0)
@@ -1803,41 +1753,10 @@
       if (EINTR == errno)
         return MHD_YES;
 #if HAVE_MESSAGES
-#ifndef WINDOWS
-      MHD_DLOG (daemon, "select failed: %s\n", strerror (errno));
-#else
-      FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | 
-                    FORMAT_MESSAGE_FROM_SYSTEM |
-                    FORMAT_MESSAGE_IGNORE_INSERTS,
-                    NULL,
-                    (DWORD) GetLastError(),
-                    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                    (LPTSTR) &msgBuffer,
-                    0, NULL);
-      MHD_DLOG (daemon, "select failed: %s\n", msgBuffer);
-      LocalFree(msgBuffer);
+      MHD_DLOG (daemon, "select failed: %s\n", STRERROR (errno));
 #endif
-#endif
       return MHD_NO;
     }
-#ifdef WINDOWS
-  if (num_ready == 0) {
-    if (-1 != daemon->wpipe[0])
-      {
-        if (! PeekNamedPipe((HANDLE) daemon->wpipe[0], NULL, 0, NULL, 
&dwBytes, NULL))
-          {
-            goto loop_select;
-          }
-        else if (dwBytes)
-          FD_SET (daemon->wpipe[0], &rs);
-        else
-          goto loop_select;
-      }
-    else
-      goto loop_select;
-  }
-#endif
-
   return MHD_run_from_select (daemon, &rs, &ws, &es);
 }
 
@@ -1931,7 +1850,7 @@
 #if HAVE_MESSAGES
        MHD_DLOG (daemon, 
                  "poll failed: %s\n", 
-                 strerror (errno));
+                 STRERROR (errno));
 #endif
        return MHD_NO;
       }
@@ -2031,7 +1950,7 @@
       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;
     }
@@ -2124,7 +2043,7 @@
          if (0 != (daemon->options & MHD_USE_DEBUG))
            MHD_DLOG (daemon, 
                      "Call to epoll_ctl failed: %s\n", 
-                     strerror (errno));
+                     STRERROR (errno));
 #endif
          return MHD_NO;
        }
@@ -2176,7 +2095,7 @@
          if (0 != (daemon->options & MHD_USE_DEBUG))
            MHD_DLOG (daemon, 
                      "Call to epoll_wait failed: %s\n", 
-                     strerror (errno));
+                     STRERROR (errno));
 #endif
          return MHD_NO;
        }
@@ -2762,19 +2681,19 @@
 #ifdef WINDOWS
   DWORD dwFlags;
 #endif
-
+ 
   /* use SOCK_STREAM rather than ai_socktype: some getaddrinfo
    * implementations do not set ai_socktype, e.g. RHL6.2. */
-  fd = socket (domain, ctype, protocol);
+  fd = SOCKET (domain, ctype, protocol);
   if ( (-1 == fd) && (EINVAL == errno) && (0 != sock_cloexec) )
   {
     sock_cloexec = 0;
-    fd = socket(domain, type, protocol);
+    fd = SOCKET(domain, type, protocol);
   }
   if (-1 == fd)
     return -1;
   if (0 != sock_cloexec)
-    return fd; /* this is it */
+    return fd; /* this is it */  
   /* flag was not set during 'socket' call, let's try setting it manually */
 #ifndef WINDOWS
   flags = fcntl (fd, F_GETFD);
@@ -2783,6 +2702,9 @@
   if (!GetHandleInformation ((HANDLE) fd, &dwFlags))
 #endif
   {
+#ifdef WINDOWS
+    SetErrnoFromWinError (GetLastError ());
+#endif
     return fd; /* good luck */
   }
 #ifndef WINDOWS
@@ -2796,6 +2718,9 @@
   if (!SetHandleInformation ((HANDLE) fd, HANDLE_FLAG_INHERIT, 0))
 #endif
   {
+#ifdef WINDOWS
+    SetErrnoFromWinError (GetLastError ());
+#endif
     return fd; /* good luck */
   }
   return fd;
@@ -2822,7 +2747,7 @@
       if (0 != (daemon->options & MHD_USE_DEBUG))
        MHD_DLOG (daemon, 
                  "Call to epoll_create1 failed: %s\n", 
-                 strerror (errno));
+                 STRERROR (errno));
 #endif
       return MHD_NO;
     }
@@ -2839,7 +2764,7 @@
       if (0 != (daemon->options & MHD_USE_DEBUG))
        MHD_DLOG (daemon, 
                  "Call to epoll_ctl failed: %s\n", 
-                 strerror (errno));
+                 STRERROR (errno));
 #endif
       return MHD_NO;
     }
@@ -2887,15 +2812,15 @@
 
 #ifndef HAVE_INET6
   if (0 != (flags & MHD_USE_IPv6))
-    return NULL;
+    return NULL;    
 #endif
 #ifndef HAVE_POLL_H
   if (0 != (flags & MHD_USE_POLL))
-    return NULL;
+    return NULL;    
 #endif
 #if ! HTTPS_SUPPORT
   if (0 != (flags & MHD_USE_SSL))
-    return NULL;
+    return NULL;    
 #endif
   if (NULL == dh)
     return NULL;
@@ -2940,17 +2865,12 @@
   if (0 == (flags & (MHD_USE_SELECT_INTERNALLY | 
MHD_USE_THREAD_PER_CONNECTION)))
     use_pipe = 0; /* useless if we are using 'external' select */
   if ( (use_pipe) &&
-#ifndef WINDOWS
-       (0 != pipe (daemon->wpipe)) )
-#else
-       (0 == CreatePipe ((HANDLE *) &daemon->wpipe[0],
-                         (HANDLE *) &daemon->wpipe[1], NULL, 0)) )
-#endif
+       (0 != PIPE (daemon->wpipe)) )
     {
 #if HAVE_MESSAGES
-      MHD_DLOG (daemon,
+      MHD_DLOG (daemon, 
                "Failed to create control pipe: %s\n",
-               strerror (errno));
+               STRERROR (errno));
 #endif
       free (daemon);
       return NULL;
@@ -2963,9 +2883,9 @@
       MHD_DLOG (daemon, 
                "file descriptor for control pipe exceeds maximum value\n");
 #endif
-      if (0 != close (daemon->wpipe[0]))
+      if (0 != CLOSE (daemon->wpipe[0]))
        MHD_PANIC ("close failed\n");
-      if (0 != close (daemon->wpipe[1]))
+      if (0 != CLOSE (daemon->wpipe[1]))
        MHD_PANIC ("close failed\n");
       free (daemon);
       return NULL;
@@ -3017,7 +2937,7 @@
 #if HAVE_MESSAGES
          MHD_DLOG (daemon,
                    "Failed to allocate memory for nonce-nc map: %s\n",
-                   strerror (errno));
+                   STRERROR (errno));
 #endif
 #if HTTPS_SUPPORT
          if (0 != (flags & MHD_USE_SSL))
@@ -3105,20 +3025,20 @@
          if (0 != (flags & MHD_USE_DEBUG))
            MHD_DLOG (daemon, 
                      "Call to socket failed: %s\n", 
-                     strerror (errno));
+                     STRERROR (errno));
 #endif
          goto free_and_fail;
        }
-      if ( (setsockopt (socket_fd,
-                       SOL_SOCKET,
-                       SO_REUSEADDR,
-                       &on, sizeof (on))) && 
+      if ( (0 > SETSOCKOPT (socket_fd,
+                           SOL_SOCKET,
+                           SO_REUSEADDR,
+                           &on, sizeof (on))) && 
           (0 != (flags & MHD_USE_DEBUG)) )
        {
 #if HAVE_MESSAGES
          MHD_DLOG (daemon, 
                    "setsockopt failed: %s\n", 
-                   strerror (errno));
+                   STRERROR (errno));
 #endif
        }
       
@@ -3170,30 +3090,30 @@
 #else
          const char on = 1;
 #endif
-         if ( (setsockopt (socket_fd, 
-                           IPPROTO_IPV6, IPV6_V6ONLY, 
-                           &on, sizeof (on))) &&
+         if ( (0 > SETSOCKOPT (socket_fd, 
+                               IPPROTO_IPV6, IPV6_V6ONLY, 
+                               &on, sizeof (on))) &&
               (0 != (flags & MHD_USE_DEBUG)) )
            {
 #if HAVE_MESSAGES
              MHD_DLOG (daemon, 
                        "setsockopt failed: %s\n", 
-                       strerror (errno));
+                       STRERROR (errno));
 #endif
            }
 #endif
 #endif
        }
-      if (-1 == bind (socket_fd, servaddr, addrlen))
+      if (-1 == BIND (socket_fd, servaddr, addrlen))
        {
 #if HAVE_MESSAGES
          if (0 != (flags & MHD_USE_DEBUG))
            MHD_DLOG (daemon,
                      "Failed to bind to port %u: %s\n", 
                      (unsigned int) port, 
-                     strerror (errno));
+                     STRERROR (errno));
 #endif
-         if (0 != close (socket_fd))
+         if (0 != CLOSE (socket_fd))
            MHD_PANIC ("close failed\n");
          goto free_and_fail;
        }
@@ -3206,23 +3126,23 @@
 #if HAVE_MESSAGES
              MHD_DLOG (daemon,
                        "Failed to make listen socket non-blocking: %s\n", 
-                       strerror (errno));
+                       STRERROR (errno));
 #endif
-             if (0 != close (socket_fd))
+             if (0 != CLOSE (socket_fd))
                MHD_PANIC ("close failed\n");         
              goto free_and_fail;             
            }
        }
 #endif
-      if (listen (socket_fd, 32) < 0)
+      if (LISTEN (socket_fd, 32) < 0)
        {
 #if HAVE_MESSAGES
          if (0 != (flags & MHD_USE_DEBUG))
            MHD_DLOG (daemon,
                      "Failed to listen for connections: %s\n", 
-                     strerror (errno));
+                     STRERROR (errno));
 #endif
-         if (0 != close (socket_fd))     
+         if (0 != CLOSE (socket_fd))     
            MHD_PANIC ("close failed\n");
          goto free_and_fail;
        }      
@@ -3242,7 +3162,7 @@
                  socket_fd,
                  FD_SETSIZE);
 #endif
-      if (0 != close (socket_fd))
+      if (0 != CLOSE (socket_fd))
        MHD_PANIC ("close failed\n");
       goto free_and_fail;
     }
@@ -3255,7 +3175,7 @@
                "MHD failed to initialize IP connection limit mutex\n");
 #endif
       if ( (-1 != socket_fd) &&
-          (0 != close (socket_fd)) )
+          (0 != CLOSE (socket_fd)) )
        MHD_PANIC ("close failed\n");
       goto free_and_fail;
     }
@@ -3267,7 +3187,7 @@
 #endif
       pthread_mutex_destroy (&daemon->cleanup_connection_mutex);
       if ( (-1 != socket_fd) &&
-          (0 != close (socket_fd)) )
+          (0 != CLOSE (socket_fd)) )
        MHD_PANIC ("close failed\n");
       goto free_and_fail;
     }
@@ -3281,7 +3201,7 @@
                "Failed to initialize TLS support\n");
 #endif
       if ( (-1 != socket_fd) &&
-          (0 != close (socket_fd)) )
+          (0 != CLOSE (socket_fd)) )
        MHD_PANIC ("close failed\n");
       pthread_mutex_destroy (&daemon->cleanup_connection_mutex);
       pthread_mutex_destroy (&daemon->per_ip_connection_mutex);
@@ -3298,12 +3218,12 @@
 #if HAVE_MESSAGES
       MHD_DLOG (daemon,
                 "Failed to create listen thread: %s\n", 
-               strerror (res_thread_create));
+               STRERROR (res_thread_create));
 #endif
       pthread_mutex_destroy (&daemon->cleanup_connection_mutex);
       pthread_mutex_destroy (&daemon->per_ip_connection_mutex);
       if ( (-1 != socket_fd) &&
-          (0 != close (socket_fd)) )
+          (0 != CLOSE (socket_fd)) )
        MHD_PANIC ("close failed\n");
       goto free_and_fail;
     }
@@ -3337,8 +3257,14 @@
         goto thread_failed;
 #else
       sk_flags = 1;
+#if HAVE_PLIBC_FD
+      if (SOCKET_ERROR ==
+         ioctlsocket (plibc_fd_get_handle (socket_fd), FIONBIO, &sk_flags))
+        goto thread_failed;
+#else
       if (ioctlsocket (socket_fd, FIONBIO, &sk_flags) == SOCKET_ERROR)
         goto thread_failed;
+#endif // PLIBC_FD
 #endif // MINGW
 
       /* Allocate memory for pooled objects */
@@ -3388,8 +3314,8 @@
             {
 #if HAVE_MESSAGES
               MHD_DLOG (daemon,
-                        "Failed to create pool thread: %s\n",
-                       strerror (res_thread_create));
+                        "Failed to create pool thread: %s\n", 
+                       STRERROR (res_thread_create));
 #endif
               /* Free memory for this worker; cleanup below handles
                * all previously-created workers. */
@@ -3408,7 +3334,7 @@
   if (0 == i)
     {
       if ( (-1 != socket_fd) &&
-          (0 != close (socket_fd)) )
+          (0 != CLOSE (socket_fd)) )
        MHD_PANIC ("close failed\n");
       pthread_mutex_destroy (&daemon->cleanup_connection_mutex);
       pthread_mutex_destroy (&daemon->per_ip_connection_mutex);
@@ -3496,7 +3422,7 @@
        (0 != pthread_mutex_lock (&daemon->cleanup_connection_mutex)) )    
     MHD_PANIC ("Failed to acquire cleanup mutex\n");    
   for (pos = daemon->connections_head; NULL != pos; pos = pos->nextX)    
-    shutdown (pos->socket_fd, 
+    SHUTDOWN (pos->socket_fd, 
              (pos->read_closed == MHD_YES) ? SHUT_WR : SHUT_RDWR);    
   if ( (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) &&
        (0 != pthread_mutex_unlock (&daemon->cleanup_connection_mutex)) )    
@@ -3583,7 +3509,7 @@
     }
   if (-1 != daemon->wpipe[1])
     {
-      if (1 != write (daemon->wpipe[1], "e", 1))
+      if (1 != WRITE (daemon->wpipe[1], "e", 1))
        MHD_PANIC ("failed to signal shutdownn via pipe");
     }
 #ifdef HAVE_LISTEN_SHUTDOWN
@@ -3591,7 +3517,7 @@
     {
       /* fd might be -1 here due to 'MHD_quiesce_daemon' */
       if (-1 != fd)
-       (void) shutdown (fd, SHUT_RDWR);
+       (void) SHUTDOWN (fd, SHUT_RDWR);
     }
 #endif
 #if EPOLL_SUPPORT
@@ -3620,7 +3546,7 @@
          pthread_mutex_destroy 
(&daemon->worker_pool[i].cleanup_connection_mutex);
 #if EPOLL_SUPPORT   
          if ( (-1 != daemon->worker_pool[i].epoll_fd) &&
-              (0 != close (daemon->worker_pool[i].epoll_fd)) )
+              (0 != CLOSE (daemon->worker_pool[i].epoll_fd)) )
            MHD_PANIC ("close failed\n");
 #endif
        }
@@ -3641,7 +3567,7 @@
     }
   close_all_connections (daemon);
   if ( (-1 != fd) &&
-       (0 != close (fd)) )
+       (0 != CLOSE (fd)) )
     MHD_PANIC ("close failed\n");
 
   /* TLS clean up */
@@ -3656,7 +3582,7 @@
 #if EPOLL_SUPPORT
   if ( (0 != (daemon->options & MHD_USE_EPOLL_LINUX_ONLY)) &&
        (-1 != daemon->epoll_fd) &&
-       (0 != close (daemon->epoll_fd)) )    
+       (0 != CLOSE (daemon->epoll_fd)) )    
     MHD_PANIC ("close failed\n");
 #endif
 
@@ -3669,9 +3595,9 @@
 
   if (-1 != daemon->wpipe[1])
     {
-      if (0 != close (daemon->wpipe[0]))
+      if (0 != CLOSE (daemon->wpipe[0]))
        MHD_PANIC ("close failed\n");
-      if (0 != close (daemon->wpipe[1]))
+      if (0 != CLOSE (daemon->wpipe[1]))
        MHD_PANIC ("close failed\n");
     }
   free (daemon);
@@ -3761,12 +3687,15 @@
 /**
  * Initialize do setup work.
  */
-void ATTRIBUTE_CONSTRUCTOR
+void ATTRIBUTE_CONSTRUCTOR 
 MHD_init ()
 {
   mhd_panic = &mhd_panic_std;
   mhd_panic_cls = NULL;
 
+#ifdef WINDOWS
+  plibc_init ("GNU", "libmicrohttpd");
+#endif
 #if HTTPS_SUPPORT
   gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
   gnutls_global_init ();
@@ -3774,12 +3703,15 @@
 }
 
 
-void ATTRIBUTE_DESTRUCTOR
+void ATTRIBUTE_DESTRUCTOR 
 MHD_fini ()
 {
 #if HTTPS_SUPPORT
   gnutls_global_deinit ();
 #endif
+#ifdef WINDOWS
+  plibc_shutdown ();
+#endif
 }
 
 /* end of daemon.c */

Modified: libmicrohttpd/src/microhttpd/memorypool.c
===================================================================
--- libmicrohttpd/src/microhttpd/memorypool.c   2013-08-07 08:47:33 UTC (rev 
28431)
+++ libmicrohttpd/src/microhttpd/memorypool.c   2013-08-07 09:04:37 UTC (rev 
28432)
@@ -95,7 +95,7 @@
   if (max <= 32 * 1024)
     pool->memory = MAP_FAILED;
   else
-    pool->memory = mmap (NULL, max, PROT_READ | PROT_WRITE,
+    pool->memory = MMAP (NULL, max, PROT_READ | PROT_WRITE,
                         MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
 #else
   pool->memory = MAP_FAILED;
@@ -134,11 +134,7 @@
   if (pool->is_mmap == MHD_NO)
     free (pool->memory);
   else
-#ifndef WINDOWS
-    munmap (pool->memory, pool->size);
-#else
-    VirtualFree (pool->memory, 0, MEM_RELEASE);
-#endif
+    MUNMAP (pool->memory, pool->size);
   free (pool);
 }
 
@@ -155,7 +151,7 @@
  *         bytes
  */
 void *
-MHD_pool_allocate (struct MemoryPool *pool,
+MHD_pool_allocate (struct MemoryPool *pool, 
                   size_t size, int from_end)
 {
   void *ret;
@@ -196,8 +192,8 @@
  */
 void *
 MHD_pool_reallocate (struct MemoryPool *pool,
-                     void *old,
-                    size_t old_size,
+                     void *old, 
+                    size_t old_size, 
                     size_t new_size)
 {
   void *ret;
@@ -246,8 +242,8 @@
  * @return addr new address of "keep" (if it had to change)
  */
 void *
-MHD_pool_reset (struct MemoryPool *pool,
-               void *keep,
+MHD_pool_reset (struct MemoryPool *pool, 
+               void *keep, 
                size_t size)
 {
   size = ROUND_TO_ALIGN (size);

Modified: libmicrohttpd/src/microspdy/Makefile.am
===================================================================
--- libmicrohttpd/src/microspdy/Makefile.am     2013-08-07 08:47:33 UTC (rev 
28431)
+++ libmicrohttpd/src/microspdy/Makefile.am     2013-08-07 09:04:37 UTC (rev 
28432)
@@ -1,4 +1,9 @@
+if USE_PRIVATE_PLIBC_H
+ PLIBC_INCLUDE = -I$(top_srcdir)/src/include/plibc
+endif
+
 AM_CPPFLAGS = \
+  $(PLIBC_INCLUDE) \
   -I$(top_srcdir)/src/include \
   -I$(top_srcdir)/src/microspdy
 

Modified: libmicrohttpd/src/spdy2http/Makefile.am
===================================================================
--- libmicrohttpd/src/spdy2http/Makefile.am     2013-08-07 08:47:33 UTC (rev 
28431)
+++ libmicrohttpd/src/spdy2http/Makefile.am     2013-08-07 09:04:37 UTC (rev 
28432)
@@ -6,7 +6,12 @@
   AM_CFLAGS += -fprofile-arcs -ftest-coverage
 endif
 
+if USE_PRIVATE_PLIBC_H
+ PLIBC_INCLUDE = -I$(top_srcdir)/src/include/plibc
+endif
+
 AM_CPPFLAGS = \
+  $(PLIBC_INCLUDE) \
  -I$(top_srcdir) \
  -I$(top_srcdir)/src/include \
  -I$(top_srcdir)/src/applicationlayer \

Modified: libmicrohttpd/src/testcurl/test_options.c
===================================================================
--- libmicrohttpd/src/testcurl/test_options.c   2013-08-07 08:47:33 UTC (rev 
28431)
+++ libmicrohttpd/src/testcurl/test_options.c   2013-08-07 09:04:37 UTC (rev 
28432)
@@ -19,22 +19,14 @@
  */
 
 /**
- * @file test_options.c
+ * @file mhds_get_test.c
  * @brief  Testcase for libmicrohttpd HTTPS GET operations
  * @author Sagie Amir
  */
+
 #include "platform.h"
 #include "microhttpd.h"
 
-/* inet_pton requires Vista, add defines to declare that we
-   are compiling for Vista */
-#if (defined(__MINGW64__) || defined(__MINGW32__))
-#ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0600
-#endif
-#endif
-
-
 #define MHD_E_MEM "Error: memory error\n"
 #define MHD_E_SERVER_INIT "Error: failed to start server\n"
 

Modified: libmicrohttpd/src/testspdy/Makefile.am
===================================================================
--- libmicrohttpd/src/testspdy/Makefile.am      2013-08-07 08:47:33 UTC (rev 
28431)
+++ libmicrohttpd/src/testspdy/Makefile.am      2013-08-07 09:04:37 UTC (rev 
28432)
@@ -6,7 +6,12 @@
   AM_CFLAGS += -fprofile-arcs -ftest-coverage
 endif
 
+if USE_PRIVATE_PLIBC_H
+ PLIBC_INCLUDE = -I$(top_srcdir)/src/include/plibc
+endif
+
 AM_CPPFLAGS = \
+  $(PLIBC_INCLUDE) \
  -I$(top_srcdir) \
  -I$(top_srcdir)/src/include \
  -I$(top_srcdir)/src/applicationlayer \




reply via email to

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