gnunet-svn
[Top][All Lists]
Advanced

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

[libmicrohttpd] branch master updated (9f4a08a8 -> 8565e7a8)


From: gnunet
Subject: [libmicrohttpd] branch master updated (9f4a08a8 -> 8565e7a8)
Date: Fri, 28 Oct 2022 13:22:56 +0200

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

karlson2k pushed a change to branch master
in repository libmicrohttpd.

    from 9f4a08a8 microhttpd.h: doxy improvements
     new 35cdcb51 Fixed 699b6cd5636ef7ce2e41b42301fc1b56f9a02f8e
     new d23d5400 Missing part for f1c69db3000e65a992e33190f3d272a5b9ca7462
     new 8565e7a8 epoll: make sure that connection waiting for data processing 
will be processed

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/microhttpd/connection.c | 25 +++++++++++++++++++------
 src/microhttpd/daemon.c     |  2 +-
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
index 798052da..6b1ad54e 100644
--- a/src/microhttpd/connection.c
+++ b/src/microhttpd/connection.c
@@ -2589,13 +2589,16 @@ MHD_connection_update_event_loop_info (struct 
MHD_Connection *connection)
           continue;
         }
       }
-      if ( (connection->read_buffer_offset < connection->read_buffer_size) &&
-           (! connection->discard_request) )
+      if (connection->discard_request)
+        connection->event_loop_info = MHD_EVENT_LOOP_INFO_PROCESS;
+      else if (connection->read_buffer_offset == connection->read_buffer_size)
+        connection->event_loop_info = MHD_EVENT_LOOP_INFO_PROCESS;
+      else if (0 == connection->read_buffer_offset)
         connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;
       else if (connection->rq.some_payload_processed)
         connection->event_loop_info = MHD_EVENT_LOOP_INFO_PROCESS_READ;
       else
-        connection->event_loop_info = MHD_EVENT_LOOP_INFO_PROCESS;
+        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;
       break;
     case MHD_CONNECTION_BODY_RECEIVED:
     case MHD_CONNECTION_FOOTER_PART_RECEIVED:
@@ -5298,10 +5301,20 @@ MHD_connection_handle_idle (struct MHD_Connection 
*connection)
 enum MHD_Result
 MHD_connection_epoll_update_ (struct MHD_Connection *connection)
 {
-  struct MHD_Daemon *daemon = connection->daemon;
+  struct MHD_Daemon *const daemon = connection->daemon;
 
-  if ( (0 != (daemon->options & MHD_USE_EPOLL)) &&
-       (0 == (connection->epoll_state & MHD_EPOLL_STATE_IN_EPOLL_SET)) &&
+  mhd_assert (0 != (daemon->options & MHD_USE_EPOLL));
+
+  if ((0 != (MHD_EVENT_LOOP_INFO_PROCESS & connection->event_loop_info)) &&
+      (0 == (connection->epoll_state & MHD_EPOLL_STATE_IN_EREADY_EDLL)))
+  {
+    /* Make sure that connection waiting for processing will be processed */
+    EDLL_insert (daemon->eready_head,
+                 daemon->eready_tail,
+                 connection);
+  }
+
+  if ( (0 == (connection->epoll_state & MHD_EPOLL_STATE_IN_EPOLL_SET)) &&
        (0 == (connection->epoll_state & MHD_EPOLL_STATE_SUSPENDED)) &&
        ( ( (MHD_EVENT_LOOP_INFO_WRITE == connection->event_loop_info) &&
            (0 == (connection->epoll_state & MHD_EPOLL_STATE_WRITE_READY))) ||
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index 2d6df1a2..53ab147f 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -5456,7 +5456,7 @@ MHD_epoll (struct MHD_Daemon *daemon,
         (pos->epoll_state & (MHD_EPOLL_STATE_SUSPENDED
                              | MHD_EPOLL_STATE_IN_EREADY_EDLL)))
     {
-      if ( ((0 != (MHD_EVENT_LOOP_INFO_READ & pos->event_loop_info)) &&
+      if ( ((MHD_EVENT_LOOP_INFO_READ == pos->event_loop_info) &&
             (0 == (pos->epoll_state & MHD_EPOLL_STATE_READ_READY)) ) ||
            ((MHD_EVENT_LOOP_INFO_WRITE == pos->event_loop_info) &&
             (0 == (pos->epoll_state & MHD_EPOLL_STATE_WRITE_READY)) ) ||

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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