MINOR: raw-sock: always check for CO_FL_SOCK_WR_SH before sending

The test was added before splice() and send() to make sure we never
accidently send after a shutdown, because upper layers do not all
check and it's not their job to do it. In such a case we also set
errno to EPIPE so that the error can be accurately reported, e.g.,
in health checks.
diff --git a/src/raw_sock.c b/src/raw_sock.c
index 5a1e943..af9a911 100644
--- a/src/raw_sock.c
+++ b/src/raw_sock.c
@@ -185,6 +185,13 @@
 	if (!fd_send_ready(conn->handle.fd))
 		return 0;
 
+	if (conn->flags & CO_FL_SOCK_WR_SH) {
+		/* it's already closed */
+		conn->flags |= CO_FL_ERROR | CO_FL_SOCK_RD_SH;
+		errno = EPIPE;
+		return 0;
+	}
+
 	done = 0;
 	while (pipe->data) {
 		ret = splice(pipe->cons, NULL, conn->handle.fd, NULL, pipe->data,
@@ -351,6 +358,13 @@
 	if (!fd_send_ready(conn->handle.fd))
 		return 0;
 
+	if (conn->flags & CO_FL_SOCK_WR_SH) {
+		/* it's already closed */
+		conn->flags |= CO_FL_ERROR | CO_FL_SOCK_RD_SH;
+		errno = EPIPE;
+		return 0;
+	}
+
 	done = 0;
 	/* send the largest possible block. For this we perform only one call
 	 * to send() unless the buffer wraps and we exactly fill the first hunk,