From 52ee89252c8f64b2c62d2350faacb145a8d2d841 Mon Sep 17 00:00:00 2001 From: Francesco Cozzuto Date: Wed, 26 Nov 2025 15:42:05 +0100 Subject: [PATCH] Properly consume socket events in the server when the socket manager reports them --- chttp.c | 6 ++++-- src/server.c | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/chttp.c b/chttp.c index f05a7a0..2d79f34 100644 --- a/chttp.c +++ b/chttp.c @@ -1968,7 +1968,7 @@ int server_secure_context_add_certificate(ServerSecureContext *ctx, // src/socket.c //////////////////////////////////////////////////////////////////////////////////////// -#define TRACE_STATE_CHANGES +//#define TRACE_STATE_CHANGES #ifndef TRACE_STATE_CHANGES #define UPDATE_STATE(a, b) a = b @@ -4705,7 +4705,9 @@ int http_server_process_events(HTTP_Server *server, socket_set_user(&server->sockets, events[i].handle, conn); } - http_server_conn_process_events(server, conn); + while (socket_ready(&server->sockets, events[i].handle) + && conn->state != HTTP_SERVER_CONN_WAIT_STATUS) + http_server_conn_process_events(server, conn); } } diff --git a/src/server.c b/src/server.c index ae7ff56..61aad98 100644 --- a/src/server.c +++ b/src/server.c @@ -271,7 +271,9 @@ int http_server_process_events(HTTP_Server *server, socket_set_user(&server->sockets, events[i].handle, conn); } - http_server_conn_process_events(server, conn); + while (socket_ready(&server->sockets, events[i].handle) + && conn->state != HTTP_SERVER_CONN_WAIT_STATUS) + http_server_conn_process_events(server, conn); } }