gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [libmicrohttpd] 02/07: Simplified checks for allowed suspen


From: gnunet
Subject: [GNUnet-SVN] [libmicrohttpd] 02/07: Simplified checks for allowed suspend, fixed false positive for daemons with MHD_USE_ITC
Date: Sun, 26 Mar 2017 12:52:40 +0200

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

karlson2k pushed a commit to branch master
in repository libmicrohttpd.

commit ab04f53b950cdaaee58607e9217159112e033372
Author: Evgeny Grin (Karlson2k) <address@hidden>
AuthorDate: Sun Mar 26 12:03:18 2017 +0300

    Simplified checks for allowed suspend, fixed false positive for daemons 
with MHD_USE_ITC
---
 src/microhttpd/daemon.c   | 19 +++++++++----------
 src/microhttpd/internal.h |  6 ++++++
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index aa915af6..161ce5e0 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -2728,7 +2728,7 @@ MHD_suspend_connection (struct MHD_Connection *connection)
 {
   struct MHD_Daemon *daemon = connection->daemon;
 
-  if (MHD_ALLOW_SUSPEND_RESUME != (daemon->options & MHD_ALLOW_SUSPEND_RESUME))
+  if (0 == (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME))
     MHD_PANIC (_("Cannot suspend connections without enabling 
MHD_ALLOW_SUSPEND_RESUME!\n"));
   MHD_mutex_lock_chk_ (&daemon->cleanup_connection_mutex);
   if (connection->resuming)
@@ -2797,7 +2797,7 @@ MHD_resume_connection (struct MHD_Connection *connection)
   struct MHD_Daemon *daemon;
 
   daemon = connection->daemon;
-  if (MHD_ALLOW_SUSPEND_RESUME != (daemon->options & MHD_ALLOW_SUSPEND_RESUME))
+  if (0 == (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME))
     MHD_PANIC (_("Cannot resume connections without enabling 
MHD_ALLOW_SUSPEND_RESUME!\n"));
   MHD_mutex_lock_chk_ (&daemon->cleanup_connection_mutex);
   connection->resuming = true;
@@ -3332,8 +3332,7 @@ internal_run_from_select (struct MHD_Daemon *daemon,
   struct MHD_UpgradeResponseHandle *urh;
   struct MHD_UpgradeResponseHandle *urhn;
 #endif /* HTTPS_SUPPORT && UPGRADE_SUPPORT */
-  unsigned int mask = MHD_ALLOW_SUSPEND_RESUME | MHD_USE_EPOLL_INTERNAL_THREAD 
|
-    MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_POLL_INTERNAL_THREAD;
+  unsigned int mask = MHD_TEST_ALLOW_SUSPEND_RESUME | 
MHD_USE_INTERNAL_POLLING_THREAD;
 
   /* Reset. New value will be set when connections are processed. */
   /* Note: no-op for thread-per-connection as it is always false in that mode. 
*/
@@ -3348,7 +3347,7 @@ internal_run_from_select (struct MHD_Daemon *daemon,
     MHD_itc_clear_ (daemon->itc);
 
   /* Resuming external connections when using an extern mainloop  */
-  if (MHD_ALLOW_SUSPEND_RESUME == (daemon->options & mask))
+  if (MHD_TEST_ALLOW_SUSPEND_RESUME == (daemon->options & mask))
     resume_suspended_connections (daemon);
 
 #ifdef EPOLL_SUPPORT
@@ -3517,7 +3516,7 @@ MHD_select (struct MHD_Daemon *daemon,
   err_state = MHD_NO;
   if (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION))
     {
-      if ( (MHD_ALLOW_SUSPEND_RESUME == (daemon->options & 
MHD_ALLOW_SUSPEND_RESUME)) &&
+      if ( (0 != (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME)) &&
            (MHD_YES == resume_suspended_connections (daemon)) )
         may_block = MHD_NO;
 
@@ -3669,7 +3668,7 @@ MHD_poll_all (struct MHD_Daemon *daemon,
   struct MHD_UpgradeResponseHandle *urhn;
 #endif /* HTTPS_SUPPORT && UPGRADE_SUPPORT */
 
-  if ( (MHD_ALLOW_SUSPEND_RESUME == (daemon->options & 
MHD_ALLOW_SUSPEND_RESUME)) &&
+  if ( (0 != (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME)) &&
        (MHD_YES == resume_suspended_connections (daemon)) )
     may_block = MHD_NO;
 
@@ -4375,7 +4374,7 @@ MHD_epoll (struct MHD_Daemon *daemon,
 
   /* we handle resumes here because we may have ready connections
      that will not be placed into the epoll list immediately. */
-  if (MHD_ALLOW_SUSPEND_RESUME == (daemon->options & MHD_ALLOW_SUSPEND_RESUME))
+  if (0 != (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME))
     (void) resume_suspended_connections (daemon);
 
   /* process events for connections */
@@ -6126,7 +6125,7 @@ close_all_connections (struct MHD_Daemon *daemon)
      running into the check for there not being any suspended
      connections left in case of a tight race with a recently
      resumed connection. */
-  if (0 != (MHD_ALLOW_SUSPEND_RESUME & daemon->options))
+  if (0 != (MHD_TEST_ALLOW_SUSPEND_RESUME & daemon->options))
     {
       daemon->resuming = true; /* Force check for pending resume. */
       resume_suspended_connections (daemon);
@@ -6249,7 +6248,7 @@ MHD_stop_daemon (struct MHD_Daemon *daemon)
   if (NULL == daemon)
     return;
 
-  if (0 != (MHD_ALLOW_SUSPEND_RESUME & daemon->options))
+  if (0 != (MHD_TEST_ALLOW_SUSPEND_RESUME & daemon->options))
     resume_suspended_connections (daemon);
 
   daemon->shutdown = true;
diff --git a/src/microhttpd/internal.h b/src/microhttpd/internal.h
index 1356e92e..52bd8520 100644
--- a/src/microhttpd/internal.h
+++ b/src/microhttpd/internal.h
@@ -192,6 +192,12 @@ enum MHD_ConnectionEventLoopInfo
 
 
 /**
+ * Additional test value for enum MHD_FLAG to check only for 
MHD_ALLOW_SUSPEND_RESUME and
+ * NOT for MHD_USE_ITC.
+ */
+#define MHD_TEST_ALLOW_SUSPEND_RESUME 8192
+
+/**
  * Maximum length of a nonce in digest authentication.  32(MD5 Hex) +
  * 8(Timestamp Hex) + 1(NULL); hence 41 should suffice, but Opera
  * (already) takes more (see Mantis #1633), so we've increased the

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



reply via email to

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