MINOR: conn_stream: add cs_send() as a default snd_buf() function

This function is generic and is able to automatically transfer data from a
buffer to the conn_stream's tx buffer. It does this automatically if the mux
doesn't define another snd_buf() function.

It cannot yet be used as-is with the conn_stream's txbuf without risking to
lose data on close since conn_streams need to be orphaned for this.
diff --git a/src/checks.c b/src/checks.c
index 31a3939..fc9c567 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -771,7 +771,7 @@
 		goto out;
 
 	if (b_data(&check->bo)) {
-		conn->mux->snd_buf(cs, &check->bo, b_data(&check->bo), 0);
+		cs_send(cs, &check->bo, b_data(&check->bo), 0);
 		b_realign_if_empty(&check->bo);
 		if (conn->flags & CO_FL_ERROR || cs->flags & CS_FL_ERROR) {
 			chk_report_conn_err(check, errno, 0);
@@ -2699,7 +2699,7 @@
 			int ret;
 
 			__cs_want_send(cs);
-			ret = conn->mux->snd_buf(cs, &check->bo, b_data(&check->bo), 0);
+			ret = cs_send(cs, &check->bo, b_data(&check->bo), 0);
 			b_realign_if_empty(&check->bo);
 
 			if (ret <= 0) {
diff --git a/src/connection.c b/src/connection.c
index 8826706..5d7f788 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -411,6 +411,17 @@
 }
 
 /*
+ * default cs send() : this one is used when mux->snd_buf == NULL. It puts up to
+ * <count> bytes from <buf> into cs->txbuf. The number of bytes transferred is
+ * returned. Here we don't care if cs->txbuf is allocated or not. If not, it
+ * will be swapped with <buf>.
+ */
+size_t __cs_send(struct conn_stream *cs, struct buffer *buf, size_t count, int flags)
+{
+	return b_xfer(&cs->txbuf, buf, count);
+}
+
+/*
  * Get data length from tlv
  */
 static int get_tlv_length(const struct tlv *src)
diff --git a/src/stream_interface.c b/src/stream_interface.c
index 024c2f5..1d67c31 100644
--- a/src/stream_interface.c
+++ b/src/stream_interface.c
@@ -721,7 +721,7 @@
 		if (oc->flags & CF_STREAMER)
 			send_flag |= CO_SFL_STREAMER;
 
-		ret = conn->mux->snd_buf(cs, &oc->buf, co_data(oc), send_flag);
+		ret = cs_send(cs, &oc->buf, co_data(oc), send_flag);
 		if (ret > 0) {
 			did_send = 1;
 			oc->flags |= CF_WRITE_PARTIAL | CF_WROTE_DATA | CF_WRITE_EVENT;