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);