From f3345ba670b510e2bea187e7d05a1af3fc6440cd Mon Sep 17 00:00:00 2001 From: Francesco Cozzuto Date: Mon, 15 Dec 2025 08:50:37 +0100 Subject: [PATCH] Properly mark server connections as FREE when they are deinitialized --- chttp.c | 7 +++++-- src/server.c | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/chttp.c b/chttp.c index c558d03..64b9fb0 100644 --- a/chttp.c +++ b/chttp.c @@ -4622,6 +4622,7 @@ static void chttp_server_conn_free(CHTTP_ServerConn *conn) { byte_queue_free(&conn->output); byte_queue_free(&conn->input); + conn->state = CHTTP_SERVER_CONN_FREE; } int chttp_server_init(CHTTP_Server *server) @@ -4840,8 +4841,10 @@ void chttp_server_process_events(CHTTP_Server *server, if (events[i].type == SOCKET_EVENT_DISCONNECT) { - chttp_server_conn_free(conn); // TODO: what if this was in the ready queue? - server->num_conns--; + if (conn) { + chttp_server_conn_free(conn); // TODO: what if this was in the ready queue? + server->num_conns--; + } } else if (events[i].type == SOCKET_EVENT_CREATION_TIMEOUT) { diff --git a/src/server.c b/src/server.c index 5ff9efb..bf64fb6 100644 --- a/src/server.c +++ b/src/server.c @@ -14,6 +14,7 @@ static void chttp_server_conn_free(CHTTP_ServerConn *conn) { byte_queue_free(&conn->output); byte_queue_free(&conn->input); + conn->state = CHTTP_SERVER_CONN_FREE; } int chttp_server_init(CHTTP_Server *server)