From: Willy Tarreau Date: Sat, 24 Nov 2012 10:14:45 +0000 (+0100) Subject: BUG/MEDIUM: checks: report handshake failures X-Git-Tag: v1.5-dev14~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c560da279430e3e11f9845026d22efed6fdf44c;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: checks: report handshake failures Up to now, only data layer failures were reported to the task, but if a handshake failed from the beginning, the error was not reported as a failure. --- diff --git a/src/checks.c b/src/checks.c index b23fa86bce..a0637c29df 100644 --- a/src/checks.c +++ b/src/checks.c @@ -1183,8 +1183,12 @@ static int wake_srv_chk(struct connection *conn) { struct server *s = conn->owner; - if (unlikely(conn->flags & CO_FL_ERROR)) + if (unlikely(conn->flags & CO_FL_ERROR)) { + /* Note that we might as well have been woken up by a handshake handler */ + s->result |= SRV_CHK_FAILED; + __conn_data_stop_both(conn); task_wakeup(s->check.task, TASK_WOKEN_IO); + } if (s->result & (SRV_CHK_FAILED|SRV_CHK_PASSED)) conn_full_close(conn);