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 b23fa86..a0637c2 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -1183,8 +1183,12 @@
{
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);