gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [libmicrohttpd] 03/03: fix test_upgrade transient failures


From: gnunet
Subject: [GNUnet-SVN] [libmicrohttpd] 03/03: fix test_upgrade transient failures (#5189)
Date: Fri, 02 Mar 2018 21:45:33 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository libmicrohttpd.

commit 0ebdff94d461abd4328cf45a6281c15139a045eb
Author: Christian Grothoff <address@hidden>
AuthorDate: Fri Mar 2 21:45:17 2018 +0100

    fix test_upgrade transient failures (#5189)
---
 ChangeLog                     |  4 ++
 src/lib/daemon_destroy.c      | 15 +++----
 src/lib/daemon_start.c        | 51 +++++++++++++-----------
 src/lib/request_resume.c      |  8 ++++
 src/microhttpd/daemon.c       | 25 ++++++++----
 src/microhttpd/test_upgrade.c | 92 +++++++++++++++++++++++++++++++------------
 6 files changed, 129 insertions(+), 66 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 214d6373..60463ce8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Mar  2 21:44:24 CET 2018
+       Ensure MHD_RequestCompletedCallback is always called from
+       the correct thread (even on shutdown and for upgraded connections). -CG
+
 Tue Feb 27 23:27:02 CET 2018
        Ensure MHD_RequestCompletedCallback is also called for
        upgraded connections. -CG
diff --git a/src/lib/daemon_destroy.c b/src/lib/daemon_destroy.c
index a236ba8f..ae8c33d8 100644
--- a/src/lib/daemon_destroy.c
+++ b/src/lib/daemon_destroy.c
@@ -37,7 +37,7 @@ stop_workers (struct MHD_Daemon *daemon)
 {
   MHD_socket fd;
   unsigned int i;
-       
+
   mhd_assert (1 < daemon->worker_pool_size);
   mhd_assert (1 < daemon->threading_model);
   if (daemon->was_quiesced)
@@ -102,7 +102,7 @@ MHD_daemon_destroy (struct MHD_Daemon *daemon)
     fd = daemon->listen_socket;
 
   /* FIXME: convert from here to microhttpd2-style API! */
-  
+
   if (NULL != daemon->worker_pool)
     { /* Master daemon with worker pool. */
       stop_workers (daemon);
@@ -114,9 +114,6 @@ MHD_daemon_destroy (struct MHD_Daemon *daemon)
       if (MHD_TM_EXTERNAL_EVENT_LOOP != daemon->threading_model)
         {
          /* Worker daemon or single daemon with internal thread(s). */
-          if (! daemon->disallow_suspend_resume)
-            (void) MHD_resume_suspended_connections_ (daemon);
-
          /* Separate thread(s) is used for polling sockets. */
          if (MHD_ITC_IS_VALID_(daemon->itc))
            {
@@ -137,7 +134,7 @@ MHD_daemon_destroy (struct MHD_Daemon *daemon)
 #endif /* HAVE_LISTEN_SHUTDOWN */
                mhd_assert (false); /* Should never happen */
            }
-         
+
          if (! MHD_join_thread_ (daemon->pid.handle))
            {
              MHD_PANIC (_("Failed to join a thread\n"));
@@ -171,10 +168,10 @@ MHD_daemon_destroy (struct MHD_Daemon *daemon)
     return;
   /* Cleanup that should be done only one time in master/single daemon.
    * Do not perform this cleanup in worker daemons. */
-      
+
   if (MHD_INVALID_SOCKET != fd)
     MHD_socket_close_chk_ (fd);
-  
+
   /* TLS clean up */
 #ifdef HTTPS_SUPPORT
   if (NULL != daemon->tls_api)
@@ -191,7 +188,7 @@ MHD_daemon_destroy (struct MHD_Daemon *daemon)
 #endif
     }
 #endif /* HTTPS_SUPPORT */
-  
+
 #ifdef DAUTH_SUPPORT
   free (daemon->nnc);
   MHD_mutex_destroy_chk_ (&daemon->nnc_lock);
diff --git a/src/lib/daemon_start.c b/src/lib/daemon_start.c
index a3099d75..4705851d 100644
--- a/src/lib/daemon_start.c
+++ b/src/lib/daemon_start.c
@@ -28,6 +28,7 @@
 #include "daemon_select.h"
 #include "daemon_poll.h"
 #include "daemon_epoll.h"
+#include "request_resume.h"
 
 
 /**
@@ -159,7 +160,7 @@ open_listen_socket (struct MHD_Daemon *daemon)
   const struct sockaddr *sa;
   int pf;
   bool use_v6;
-      
+
   if (MHD_INVALID_SOCKET != daemon->listen_socket)
     return MHD_SC_OK; /* application opened it for us! */
 
@@ -223,7 +224,7 @@ open_listen_socket (struct MHD_Daemon *daemon)
       return MHD_SC_IPV6_NOT_SUPPORTED_BY_BUILD;
 #endif
     }
-  
+
   /* try to open listen socket */
  try_open_listen_socket:
   daemon->listen_socket = MHD_socket_create_listen_(pf);
@@ -235,7 +236,7 @@ open_listen_socket (struct MHD_Daemon *daemon)
       pf = PF_INET;
       goto try_open_listen_socket;
     }
-  if (MHD_INVALID_SOCKET == daemon->listen_socket) 
+  if (MHD_INVALID_SOCKET == daemon->listen_socket)
     {
 #ifdef HAVE_MESSAGES
       MHD_DLOG (daemon,
@@ -281,7 +282,7 @@ open_listen_socket (struct MHD_Daemon *daemon)
 #endif
 #endif
     }
-  
+
   /* Determine address to bind to */
   if (0 != daemon->listen_sa_len)
     {
@@ -332,8 +333,8 @@ open_listen_socket (struct MHD_Daemon *daemon)
        }
       sa = (const struct sockaddr *) &ss;
     }
-      
-  /* actually do the bind() */    
+
+  /* actually do the bind() */
   if (-1 == bind (daemon->listen_socket,
                  sa,
                  addrlen))
@@ -406,7 +407,7 @@ open_listen_socket (struct MHD_Daemon *daemon)
 }
 
 
-/** 
+/**
  * Obtain the listen port number from the socket (if it
  * was not explicitly set by us, i.e. if we were given
  * a listen socket or if the port was 0 and the OS picked
@@ -419,7 +420,7 @@ get_listen_port_number (struct MHD_Daemon *daemon)
 {
   struct sockaddr_storage servaddr;
   socklen_t addrlen;
-  
+
   if ( (0 != daemon->listen_port) ||
        (MHD_INVALID_SOCKET == daemon->listen_socket) )
     return; /* nothing to be done */
@@ -457,7 +458,7 @@ get_listen_port_number (struct MHD_Daemon *daemon)
     case AF_INET:
       {
        struct sockaddr_in *s4 = (struct sockaddr_in *) &servaddr;
-       
+
        daemon->listen_port = ntohs (s4->sin_port);
        break;
       }
@@ -465,7 +466,7 @@ get_listen_port_number (struct MHD_Daemon *daemon)
     case AF_INET6:
       {
        struct sockaddr_in6 *s6 = (struct sockaddr_in6 *) &servaddr;
-       
+
        daemon->listen_port = ntohs(s6->sin6_port);
        break;
       }
@@ -630,7 +631,7 @@ MHD_polling_thread (void *cls)
                          MHD_YES);
        break;
       case MHD_ELS_EPOLL:
-#ifdef EPOLL_SUPPORT   
+#ifdef EPOLL_SUPPORT
        MHD_daemon_epoll_ (daemon,
                           MHD_YES);
 #else
@@ -643,6 +644,8 @@ MHD_polling_thread (void *cls)
   /* Resume any pending for resume connections, join
    * all connection's threads (if any) and finally cleanup
    * everything. */
+  if (! daemon->disallow_suspend_resume)
+    MHD_resume_suspended_connections_ (daemon);
   MHD_daemon_close_all_connections_ (daemon);
 
   return (MHD_THRD_RTRN_TYPE_)0;
@@ -673,13 +676,13 @@ setup_thread_pool (struct MHD_Daemon *daemon)
                                     sizeof (struct MHD_Daemon));
   if (NULL == daemon->worker_pool)
     return MHD_SC_THREAD_POOL_MALLOC_FAILURE;
-  
+
   /* Start the workers in the pool */
   for (i = 0; i < daemon->threading_model; i++)
     {
       /* Create copy of the Daemon object for each worker */
       struct MHD_Daemon *d = &daemon->worker_pool[i];
-      
+
       memcpy (d,
              daemon,
              sizeof (struct MHD_Daemon));
@@ -695,8 +698,8 @@ setup_thread_pool (struct MHD_Daemon *daemon)
       d->global_connection_limit = conns_per_thread;
       if (((unsigned int) i) < leftover_conns)
        ++d->global_connection_limit;
-         
-      if (! daemon->disable_itc)       
+
+      if (! daemon->disable_itc)
        {
          if (! MHD_itc_init_ (d->itc))
            {
@@ -727,13 +730,13 @@ setup_thread_pool (struct MHD_Daemon *daemon)
        {
          MHD_itc_set_invalid_ (d->itc);
        }
-      
+
 #ifdef EPOLL_SUPPORT
       if ( (MHD_ELS_EPOLL == daemon->event_loop_syscall) &&
           (MHD_SC_OK != (sc = setup_epoll_to_listen (d))) )
        goto thread_failed;
 #endif
-      
+
       /* Must init cleanup connection mutex for each worker */
       if (! MHD_mutex_init_ (&d->cleanup_connection_mutex))
        {
@@ -747,7 +750,7 @@ setup_thread_pool (struct MHD_Daemon *daemon)
          sc = MHD_SC_THREAD_POOL_CREATE_MUTEX_FAILURE;
          goto thread_failed;
        }
-      
+
       /* Spawn the worker thread */
       if (! MHD_create_named_thread_ (&d->pid,
                                      "MHD-worker",
@@ -867,10 +870,10 @@ MHD_daemon_start (struct MHD_Daemon *daemon)
          return MHD_SC_ITC_DESCRIPTOR_TOO_LARGE;
        }
     }
-  
+
   if (MHD_SC_OK != (sc = open_listen_socket (daemon)))
     return sc;
-  
+
   /* Check listen socket is in range (if we are limited) */
   if ( (MHD_INVALID_SOCKET != daemon->listen_socket) &&
        (MHD_ELS_SELECT == daemon->event_loop_syscall) &&
@@ -886,7 +889,7 @@ MHD_daemon_start (struct MHD_Daemon *daemon)
 #endif
       return MHD_SC_LISTEN_SOCKET_TOO_LARGE;
     }
-  
+
   /* set listen socket to non-blocking */
   if ( (MHD_INVALID_SOCKET != daemon->listen_socket) &&
        (! MHD_socket_nonblocking_ (daemon->listen_socket)) )
@@ -907,7 +910,7 @@ MHD_daemon_start (struct MHD_Daemon *daemon)
          return MHD_SC_LISTEN_SOCKET_NONBLOCKING_FAILURE;
        }
     }
-  
+
 #ifdef EPOLL_SUPPORT
   /* Setup epoll */
   if ( (MHD_ELS_EPOLL == daemon->event_loop_syscall) &&
@@ -916,7 +919,7 @@ MHD_daemon_start (struct MHD_Daemon *daemon)
        (MHD_SC_OK != (sc = setup_epoll_to_listen (daemon))) )
     return sc;
 #endif
-     
+
   /* Setup main listen thread (only if we have no thread pool or
      external event loop and do have a listen socket) */
   /* FIXME: why no worker thread if we have no listen socket? */
@@ -949,7 +952,7 @@ MHD_daemon_start (struct MHD_Daemon *daemon)
 
   /* make sure we know our listen port (if any) */
   get_listen_port_number (daemon);
-  
+
   return MHD_SC_OK;
 }
 
diff --git a/src/lib/request_resume.c b/src/lib/request_resume.c
index b4bd651e..8fdffb87 100644
--- a/src/lib/request_resume.c
+++ b/src/lib/request_resume.c
@@ -156,9 +156,17 @@ MHD_resume_suspended_connections_ (struct MHD_Daemon 
*daemon)
 #ifdef UPGRADE_SUPPORT
       else
         {
+          struct MHD_Response *response = pos->request.response;
+
           /* Data forwarding was finished (for TLS connections) AND
            * application was closed upgraded connection.
            * Insert connection into cleanup list. */
+          if ( (NULL != response) &&
+               (MHD_TM_THREAD_PER_CONNECTION != daemon->threading_model) &&
+               (NULL != response->termination_cb) )
+            response->termination_cb (response->termination_cb_cls,
+                                      MHD_REQUEST_TERMINATED_COMPLETED_OK,
+                                      &pos->request.client_context);
           DLL_insert (daemon->cleanup_head,
                       daemon->cleanup_tail,
                       pos);
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index 8c196421..6179f2bc 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -2750,7 +2750,7 @@ resume_suspended_connections (struct MHD_Daemon *daemon)
           DLL_insert (daemon->connections_head,
                       daemon->connections_tail,
                       pos);
-          if (!used_thr_p_c)
+          if (! used_thr_p_c)
             {
               /* Reset timeout timer on resume. */
               if (0 != pos->connection_timeout)
@@ -2787,6 +2787,15 @@ resume_suspended_connections (struct MHD_Daemon *daemon)
           /* Data forwarding was finished (for TLS connections) AND
            * application was closed upgraded connection.
            * Insert connection into cleanup list. */
+
+          if ( (NULL != daemon->notify_completed) &&
+               (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) &&
+               (pos->client_aware) )
+            daemon->notify_completed (daemon->notify_completed_cls,
+                                      pos,
+                                      &pos->client_context,
+                                      MHD_REQUEST_TERMINATED_COMPLETED_OK);
+          pos->client_aware = false;
           DLL_insert (daemon->cleanup_head,
                       daemon->cleanup_tail,
                       pos);
@@ -3780,7 +3789,7 @@ MHD_poll_listen_socket (struct MHD_Daemon *daemon,
     }
 
   if (0 != (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME))
-    (void)resume_suspended_connections (daemon);
+    (void) resume_suspended_connections (daemon);
 
   if (MHD_NO == may_block)
     timeout = 0;
@@ -4385,7 +4394,7 @@ close_connection (struct MHD_Connection *pos)
 
   mhd_assert (! pos->suspended);
   mhd_assert (! pos->resuming);
-  if (pos->connection_timeout == pos->daemon->connection_timeout)
+  if (pos->connection_timeout == daemon->connection_timeout)
     XDLL_remove (daemon->normal_timeout_head,
                 daemon->normal_timeout_tail,
                 pos);
@@ -4433,6 +4442,8 @@ MHD_polling_thread (void *cls)
   /* Resume any pending for resume connections, join
    * all connection's threads (if any) and finally cleanup
    * everything. */
+  if (0 != (MHD_TEST_ALLOW_SUSPEND_RESUME & daemon->options))
+    resume_suspended_connections (daemon);
   close_all_connections (daemon);
 
   return (MHD_THRD_RTRN_TYPE_)0;
@@ -6304,7 +6315,8 @@ MHD_stop_daemon (struct MHD_Daemon *daemon)
           daemon->worker_pool[i].shutdown = true;
           if (MHD_ITC_IS_VALID_(daemon->worker_pool[i].itc))
             {
-              if (! MHD_itc_activate_ (daemon->worker_pool[i].itc, "e"))
+              if (! MHD_itc_activate_ (daemon->worker_pool[i].itc,
+                                       "e"))
                 MHD_PANIC (_("Failed to signal shutdown via inter-thread 
communication channel."));
             }
           else
@@ -6335,11 +6347,8 @@ MHD_stop_daemon (struct MHD_Daemon *daemon)
       if (0 != (daemon->options & MHD_USE_INTERNAL_POLLING_THREAD))
         { /* Worker daemon or single daemon with internal thread(s). */
           mhd_assert (0 == daemon->worker_pool_size);
-          if (0 != (MHD_TEST_ALLOW_SUSPEND_RESUME & daemon->options))
-            resume_suspended_connections (daemon);
-
          /* Separate thread(s) is used for polling sockets. */
-         if (MHD_ITC_IS_VALID_(daemon->itc))
+         if (MHD_ITC_IS_VALID_ (daemon->itc))
            {
              if (! MHD_itc_activate_ (daemon->itc,
                                        "e"))
diff --git a/src/microhttpd/test_upgrade.c b/src/microhttpd/test_upgrade.c
index 1b018ad4..6c26104e 100644
--- a/src/microhttpd/test_upgrade.c
+++ b/src/microhttpd/test_upgrade.c
@@ -447,7 +447,8 @@ notify_completed_cb (void *cls,
 {
   pthread_t* ppth = *con_cls;
 
-  (void)cls; (void)connection;  /* Unused. Silent compiler warning. */
+  (void) cls;
+  (void) connection;  /* Unused. Silent compiler warning. */
   if ( (toe != MHD_REQUEST_TERMINATED_COMPLETED_OK) &&
        (toe != MHD_REQUEST_TERMINATED_CLIENT_ABORT) &&
        (toe != MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN) )
@@ -474,13 +475,14 @@ log_cb (void *cls,
         const char *uri,
         struct MHD_Connection *connection)
 {
-  pthread_t* ppth;
-  (void)cls; (void)connection;  /* Unused. Silent compiler warning. */
+  pthread_t *ppth;
 
+  (void) cls;
+  (void) connection;  /* Unused. Silent compiler warning. */
   if (0 != strcmp (uri,
                    "/"))
     abort ();
-  ppth = (pthread_t*) malloc (sizeof(pthread_t));
+  ppth = malloc (sizeof (pthread_t));
   if (NULL == ppth)
     abort();
   *ppth = pthread_self ();
@@ -514,8 +516,9 @@ notify_connection_cb (void *cls,
                       enum MHD_ConnectionNotificationCode toe)
 {
   static int started;
-  (void)cls; (void)connection;  /* Unused. Silent compiler warning. */
 
+  (void) cls;
+  (void) connection;  /* Unused. Silent compiler warning. */
   switch (toe)
   {
   case MHD_CONNECTION_NOTIFY_STARTED:
@@ -773,7 +776,11 @@ upgrade_cb (void *cls,
             MHD_socket sock,
             struct MHD_UpgradeResponseHandle *urh)
 {
-  (void)cls; (void)connection; (void)con_cls; (void)extra_in; /* Unused. 
Silent compiler warning. */
+  (void) cls;
+  (void) connection;
+  (void) con_cls;
+  (void) extra_in; /* Unused. Silent compiler warning. */
+
   usock = wr_create_from_plain_sckt (sock);
   if (0 != extra_in_size)
     abort ();
@@ -836,8 +843,12 @@ ahc_upgrade (void *cls,
 {
   struct MHD_Response *resp;
   int ret;
-  (void)cls;(void)url;(void)method;                        /* Unused. Silent 
compiler warning. */
-  (void)version;(void)upload_data;(void)upload_data_size;  /* Unused. Silent 
compiler warning. */
+  (void) cls;
+  (void) url;
+  (void) method;                        /* Unused. Silent compiler warning. */
+  (void) version;
+  (void) upload_data;
+  (void) upload_data_size;  /* Unused. Silent compiler warning. */
 
   if (NULL == *con_cls)
     abort ();
@@ -1061,7 +1072,8 @@ test_upgrade (int flags,
     {
 #if defined(HTTPS_SUPPORT) && defined(HAVE_FORK) && defined(HAVE_WAITPID)
       MHD_socket tls_fork_sock;
-      if (-1 == (pid = gnutlscli_connect (&tls_fork_sock, dinfo->port)))
+      if (-1 == (pid = gnutlscli_connect (&tls_fork_sock,
+                                          dinfo->port)))
         {
           MHD_stop_daemon (d);
           return 4;
@@ -1105,7 +1117,8 @@ main (int argc,
   test_tls = has_in_name(argv[0], "_tls");
 
   verbose = 1;
-  if (has_param(argc, argv, "-q") || has_param(argc, argv, "--quiet"))
+  if (has_param(argc, argv, "-q") ||
+      has_param(argc, argv, "--quiet"))
     verbose = 0;
 
   if (test_tls)
@@ -1154,13 +1167,16 @@ main (int argc,
 
   /* run tests */
   if (verbose)
-    printf ("Starting HTTP \"Upgrade\" tests with %s connections.\n", test_tls 
? "TLS" : "plain");
+    printf ("Starting HTTP \"Upgrade\" tests with %s connections.\n",
+            test_tls ? "TLS" : "plain");
   /* try external select */
   res = test_upgrade (0,
                       0);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with external select, return code 
%d.\n", res);
+    fprintf (stderr,
+             "FAILED: Upgrade with external select, return code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with external select.\n");
 
@@ -1169,7 +1185,9 @@ main (int argc,
                       0);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with external 'auto', return code 
%d.\n", res);
+    fprintf (stderr,
+             "FAILED: Upgrade with external 'auto', return code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with external 'auto'.\n");
 
@@ -1178,7 +1196,9 @@ main (int argc,
                       0);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with external select with EPOLL, return 
code %d.\n", res);
+    fprintf (stderr,
+             "FAILED: Upgrade with external select with EPOLL, return code 
%d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with external select with EPOLL.\n");
 #endif
@@ -1188,7 +1208,9 @@ main (int argc,
                       0);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with thread per connection, return code 
%d.\n", res);
+    fprintf (stderr,
+             "FAILED: Upgrade with thread per connection, return code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with thread per connection.\n");
 
@@ -1196,7 +1218,9 @@ main (int argc,
                       0);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with thread per connection and 'auto', 
return code %d.\n", res);
+    fprintf (stderr,
+             "FAILED: Upgrade with thread per connection and 'auto', return 
code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with thread per connection and 'auto'.\n");
 #ifdef HAVE_POLL
@@ -1204,7 +1228,9 @@ main (int argc,
                       0);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with thread per connection and poll, 
return code %d.\n", res);
+    fprintf (stderr,
+             "FAILED: Upgrade with thread per connection and poll, return code 
%d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with thread per connection and poll.\n");
 #endif /* HAVE_POLL */
@@ -1214,28 +1240,36 @@ main (int argc,
                       0);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with internal select, return code 
%d.\n", res);
+    fprintf (stderr,
+             "FAILED: Upgrade with internal select, return code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with internal select.\n");
   res = test_upgrade (MHD_USE_INTERNAL_POLLING_THREAD,
                       2);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with internal select with thread pool, 
return code %d.\n", res);
+    fprintf (stderr,
+             "FAILED: Upgrade with internal select with thread pool, return 
code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with internal select with thread pool.\n");
   res = test_upgrade (MHD_USE_AUTO | MHD_USE_INTERNAL_POLLING_THREAD,
                       0);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with internal 'auto' return code %d.\n", 
res);
+    fprintf (stderr,
+             "FAILED: Upgrade with internal 'auto' return code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with internal 'auto'.\n");
   res = test_upgrade (MHD_USE_AUTO | MHD_USE_INTERNAL_POLLING_THREAD,
                       2);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with internal 'auto' with thread pool, 
return code %d.\n", res);
+    fprintf (stderr,
+             "FAILED: Upgrade with internal 'auto' with thread pool, return 
code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with internal 'auto' with thread pool.\n");
 #ifdef HAVE_POLL
@@ -1243,13 +1277,17 @@ main (int argc,
                       0);
   error_count += res;
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with internal poll, return code %d.\n", 
res);
+    fprintf (stderr,
+             "FAILED: Upgrade with internal poll, return code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with internal poll.\n");
   res = test_upgrade (MHD_USE_POLL_INTERNAL_THREAD,
                       2);
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with internal poll with thread pool, 
return code %d.\n", res);
+    fprintf (stderr,
+             "FAILED: Upgrade with internal poll with thread pool, return code 
%d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with internal poll with thread pool.\n");
 #endif
@@ -1257,13 +1295,17 @@ main (int argc,
   res = test_upgrade (MHD_USE_EPOLL_INTERNAL_THREAD,
                       0);
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with internal epoll, return code %d.\n", 
res);
+    fprintf (stderr,
+             "FAILED: Upgrade with internal epoll, return code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with internal epoll.\n");
   res = test_upgrade (MHD_USE_EPOLL_INTERNAL_THREAD,
                       2);
   if (res)
-    fprintf (stderr, "FAILED: Upgrade with internal epoll, return code %d.\n", 
res);
+    fprintf (stderr,
+             "FAILED: Upgrade with internal epoll, return code %d.\n",
+             res);
   else if (verbose)
     printf ("PASSED: Upgrade with internal epoll.\n");
 #endif

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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