libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 28e0215df7c2aeca176bb66c5ea60a29af1cf37a
parent f0a5b72f56f386803fd4efde86a0864c463e62f9
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date:   Mon, 16 May 2022 19:42:36 +0300

MHD_connection_update_event_loop_info(): more complete TLS states handling

Diffstat:
Msrc/microhttpd/connection.c | 13++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c @@ -2484,13 +2484,24 @@ MHD_connection_update_event_loop_info (struct MHD_Connection *connection) connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ; return; case MHD_TLS_CONN_HANDSHAKING: + case MHD_TLS_CONN_WR_CLOSING: if (0 == gnutls_record_get_direction (connection->tls_session)) connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ; else connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE; return; + case MHD_TLS_CONN_CONNECTED: + break; /* Do normal processing */ + case MHD_TLS_CONN_WR_CLOSED: + case MHD_TLS_CONN_TLS_FAILED: + connection->event_loop_info = MHD_EVENT_LOOP_INFO_CLEANUP; + return; + case MHD_TLS_CONN_TLS_CLOSING: /* Not implemented yet */ + case MHD_TLS_CONN_TLS_CLOSED: /* Not implemented yet */ + case MHD_TLS_CONN_INVALID_STATE: + case MHD_TLS_CONN_NO_TLS: /* Not possible */ default: - break; + MHD_PANIC (_ ("Invalid TLS state value.\n")); } } #endif /* HTTPS_SUPPORT */