[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.
- [libmicrohttpd] branch master updated (9f4a08a8 -> 8565e7a8),
gnunet <=