From 4c1a2b30a3c32df9e8fc7e8002d3390460816861 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 5 Sep 2019 18:43:22 +0200 Subject: [PATCH] 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. --- src/checks.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/checks.c b/src/checks.c index 55e8a17a0..1268cda5e 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 */