From 373e40f0c109daa702de452c09f823f71536164e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Wed, 15 Nov 2023 14:24:10 +0100 Subject: [PATCH] MEDIUM: session: handshake timeout (TCP) Adapt session_accept_fd() called on accept() to set the handshake timeout from "hanshake-timeout" setting if set by configuration. If not set, continue to use the "client" timeout setting. --- src/session.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/session.c b/src/session.c index 68dd4bc..c090c7c 100644 --- a/src/session.c +++ b/src/session.c @@ -279,13 +279,19 @@ int session_accept_fd(struct connection *cli_conn) * conn -- owner ---> task <-----+ */ if (cli_conn->flags & (CO_FL_WAIT_XPRT | CO_FL_EARLY_SSL_HS)) { + int timeout; + int clt_tmt = p->timeout.client; + int hs_tmt = p->timeout.handshake; + if (unlikely((sess->task = task_new_here()) == NULL)) goto out_free_sess; + /* Handshake timeout as default timeout */ + timeout = hs_tmt ? hs_tmt : clt_tmt; sess->task->context = sess; sess->task->nice = l->bind_conf->nice; sess->task->process = session_expire_embryonic; - sess->task->expire = tick_add_ifset(now_ms, p->timeout.client); + sess->task->expire = tick_add_ifset(now_ms, timeout); task_queue(sess->task); return 1; } -- 1.7.10.4