tree 110a76fc76492c082b730ee2f89f6995ef931368
parent 39f1615c52388b8675517a899c3d38eb85d342f0
author Aurelien DARRAGON <adarragon@haproxy.com> 1675772774 +0100
committer Christopher Faulet <cfaulet@haproxy.com> 1690186672 +0200

BUG/MINOR: listener: fix resume_listener() resume return value handling

In resume_listener(), proto->resume() errors were not properly handled:
the function kept flowing down as if no errors were detected.

Instead, we're performing an early return when such errors are detected to
prevent undefined behaviors.

This could be backported up to 2.4.

--
Backport notes:

This commit depends on:
 - "MINOR: listener: make sure we don't pause/resume bypassed listeners"

-> 2.4 ... 2.7:

Replace this:

    |        if (l->bind_conf->maxconn && l->nbconn >= l->bind_conf->maxconn) {
    |                l->rx.proto->disable(l);

By this:

    |        if (l->maxconn && l->nbconn >= l->maxconn) {
    |                l->rx.proto->disable(l);

(cherry picked from commit 3bb2a38f01990919b7285ce94e0ae762722dafba)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit d7affcfe281cfacd21b2b2908a3178340db45c18)
Signed-off-by: Amaury Denoyelle <adenoyelle@haproxy.com>
(cherry picked from commit 8533f35e8acccbcb8613d071c0f3b5859b38a8a8)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit bcfe1fe630615040a54af1fa9c50cd1efb1816e0)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
