From 4b3a2dfed5f88bf832c9b0e536c6a483fdb2f180 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 12 May 2020 15:05:43 +0200 Subject: [PATCH] BUG/MEDIUM: checks: Subscribe to I/O events only if a mux was installed In the commit 2fabd9d53 ("BUG/MEDIUM: checks: Subscribe to I/O events on an unfinished connect"), we force the subscribtion to I/O events when a new connection is opened if it is not fully established. But it must only be done if a mux was immediately installed. If there is no mux, no subscription must be performed. No backport needed. --- src/checks.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/checks.c b/src/checks.c index 901deb9..d22c113 100644 --- a/src/checks.c +++ b/src/checks.c @@ -1891,10 +1891,12 @@ static enum tcpcheck_eval_ret tcpcheck_eval_connect(struct check *check, struct /* don't do anything until the connection is established */ if (conn->flags & CO_FL_WAIT_XPRT) { - if (next && next->action == TCPCHK_ACT_SEND) - conn->mux->subscribe(cs, SUB_RETRY_SEND, &check->wait_list); - else - conn->mux->subscribe(cs, SUB_RETRY_RECV, &check->wait_list); + if (conn->mux) { + if (next && next->action == TCPCHK_ACT_SEND) + conn->mux->subscribe(cs, SUB_RETRY_SEND, &check->wait_list); + else + conn->mux->subscribe(cs, SUB_RETRY_RECV, &check->wait_list); + } ret = TCPCHK_EVAL_WAIT; goto out; } -- 1.7.10.4