From: Willy Tarreau Date: Thu, 5 Sep 2019 16:43:22 +0000 (+0200) Subject: BUG/MINOR: checks: make __event_chk_srv_r() report success before closing X-Git-Tag: v2.1-dev2~106 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4c1a2b30a3c32df9e8fc7e8002d3390460816861;p=thirdparty%2Fhaproxy.git BUG/MINOR: checks: make __event_chk_srv_r() report success before closing On a plain TCP check, this function will do nothing except shutting the connection down and will not even update the status. This prevents it from being called again, which is the reason why we attempt to do it once too early. Let's first fix this function to make it report success on plain TCP checks before closing, as it does for all other ones. This must be backported to 2.0. It should be safe to backport to older versions but it doesn't seem it would fix anything there. --- diff --git a/src/checks.c b/src/checks.c index 55e8a17a09..1268cda5ee 100644 --- a/src/checks.c +++ b/src/checks.c @@ -1378,7 +1378,13 @@ static void __event_srv_chk_r(struct conn_stream *cs) } default: - /* for other checks (eg: pure TCP), delegate to the main task */ + /* good connection is enough for pure TCP check */ + if ((conn->flags & CO_FL_CONNECTED) && !check->type) { + if (check->use_ssl) + set_server_check_status(check, HCHK_STATUS_L6OK, NULL); + else + set_server_check_status(check, HCHK_STATUS_L4OK, NULL); + } break; } /* switch */