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.
This commit is contained in:
Christopher Faulet 2020-05-12 15:05:43 +02:00
parent 8e36651ed3
commit 4b3a2dfed5

View File

@ -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;
}