]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: tcp-check: don't quit with pending data in the send buffer
authorWilly Tarreau <w@1wt.eu>
Wed, 4 Oct 2017 09:38:08 +0000 (11:38 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 4 Oct 2017 11:41:20 +0000 (13:41 +0200)
In the rare case where the "tcp-check send" directive is the last one in
the list, it leaves the loop without sending the data. Fortunately, the
polling is still enabled on output, resulting in the connection handler
calling back to send what remains, but this is ugly and not very reliable.

This may be backported to 1.7 and 1.6.

src/checks.c

index 31aa6081a349eea51221f27f837494520d5368a0..ad1f5688341c70760bc1588187fc4b417b8a4a43 100644 (file)
@@ -2786,8 +2786,6 @@ static void tcpcheck_main(struct connection *conn)
                                check->current_step->action == TCPCHK_ACT_COMMENT)
                                check->current_step = LIST_NEXT(&check->current_step->list, struct tcpcheck_rule *, list);
 
-                       if (&check->current_step->list == head)
-                               break;
                } /* end 'send' */
                else if (check->current_step->action == TCPCHK_ACT_EXPECT) {
                        if (unlikely(check->result == CHK_RES_FAILED))