MINOR: connection: abort earlier when errors are detected

If an uncaught CO_FL_ERROR flag on a connection is detected, we
immediately go to the wakeup function. This ensures that even if
an error is asynchronously delivered, we don't risk re-enabling
polling or doing unexpected things in the handshake handlers.
diff --git a/src/connection.c b/src/connection.c
index 9549dba..38d4ca6 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -50,6 +50,10 @@
 	 * more easily detect an EAGAIN condition from anywhere.
 	 */
 	flags = conn->flags &= ~(CO_FL_WAIT_DATA|CO_FL_WAIT_ROOM|CO_FL_WAIT_RD|CO_FL_WAIT_WR);
+	flags &= ~CO_FL_ERROR; /* ensure to call the wake handler upon error */
+
+	if (unlikely(conn->flags & CO_FL_ERROR))
+		goto leave;
 
  process_handshake:
 	/* The handshake callbacks are called in sequence. If either of them is