]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: checks: Subscribe to I/O events only if a mux was installed
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 12 May 2020 13:05:43 +0000 (15:05 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 12 May 2020 13:05:47 +0000 (15:05 +0200)
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

index 901deb991f0df61f73b3fd620c315e060a17fe98..d22c113100badd259a2008452428d561f425649e 100644 (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;
        }