BUG/MEDIUM: mux_pt: Always set CS_FL_RCV_MORE.

When using the mux_pt, as we can't know if there's more data to be read,
always set CS_FL_RCV_MORE, and only remove it if we got an error or a shutr
and rcv_buf() returned 0.
diff --git a/src/mux_pt.c b/src/mux_pt.c
index 349e213..9482419 100644
--- a/src/mux_pt.c
+++ b/src/mux_pt.c
@@ -90,6 +90,7 @@
 	}
 	conn->mux_ctx = ctx;
 	ctx->cs = cs;
+	cs->flags |= CS_FL_RCV_MORE;
 	return 0;
 
  fail_free:
@@ -148,6 +149,7 @@
 		goto fail;
 
 	ctx->cs = cs;
+	cs->flags |= CS_FL_RCV_MORE;
 	return (cs);
 fail:
 	return NULL;
@@ -207,6 +209,7 @@
 {
 	if (cs->flags & CS_FL_SHR)
 		return;
+	cs->flags &= ~CS_FL_RCV_MORE;
 	if (conn_xprt_ready(cs->conn) && cs->conn->xprt->shutr)
 		cs->conn->xprt->shutr(cs->conn, (mode == CS_SHR_DRAIN));
 	if (cs->flags & CS_FL_SHW)
@@ -246,12 +249,17 @@
 		cs->flags |= CS_FL_RCV_MORE;
 		return 0;
 	}
-	cs->flags &= ~CS_FL_RCV_MORE;
 	ret = cs->conn->xprt->rcv_buf(cs->conn, buf, count, flags);
-	if (conn_xprt_read0_pending(cs->conn))
+	if (conn_xprt_read0_pending(cs->conn)) {
+		if (ret == 0)
+			cs->flags &= ~CS_FL_RCV_MORE;
 		cs->flags |= CS_FL_EOS;
-	if (cs->conn->flags & CO_FL_ERROR)
+	}
+	if (cs->conn->flags & CO_FL_ERROR) {
+		if (ret == 0)
+			cs->flags &= ~CS_FL_RCV_MORE;
 		cs->flags |= CS_FL_ERROR;
+	}
 	return ret;
 }