From: Frédéric Lécaille Date: Wed, 15 Nov 2023 13:24:10 +0000 (+0100) Subject: MEDIUM: session: handshake timeout (TCP) X-Git-Tag: v2.9-dev10~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=373e40f0c109daa702de452c09f823f71536164e;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/session.c b/src/session.c index 68dd4bc87e..c090c7c040 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; }