REORG/MAJOR: use "struct channel" instead of "struct buffer"

This is a massive rename. We'll then split channel and buffer.

This change needs a lot of cleanups. At many locations, the parameter
or variable is still called "buf" which will become ambiguous. Also,
the "struct channel" is still defined in buffers.h.
diff --git a/src/acl.c b/src/acl.c
index e2e72ce..b4c5908 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -120,7 +120,7 @@
 {
 	int hs_len;
 	int hs_type, bleft;
-	struct buffer *b;
+	struct channel *b;
 	const unsigned char *data;
 
 	if (!l4)
@@ -324,7 +324,7 @@
                         const struct arg *args, struct sample *smp)
 {
 	int hs_len, ext_len, bleft;
-	struct buffer *b;
+	struct channel *b;
 	unsigned char *data;
 
 	if (!l4)
diff --git a/src/backend.c b/src/backend.c
index e3a64e9..b3bd972 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -252,7 +252,7 @@
 {
 	unsigned long    hash = 0;
 	struct http_txn *txn  = &s->txn;
-	struct buffer   *req  = s->req;
+	struct channel   *req = s->req;
 	struct http_msg *msg  = &txn->req;
 	struct proxy    *px   = s->be;
 	unsigned int     plen = px->url_param_len;
@@ -1122,7 +1122,7 @@
  * session. This always returns 1, and the analyser removes itself from the
  * list. Nothing is performed if a server was already assigned.
  */
-int tcp_persist_rdp_cookie(struct session *s, struct buffer *req, int an_bit)
+int tcp_persist_rdp_cookie(struct session *s, struct channel *req, int an_bit)
 {
 	struct proxy    *px   = s->be;
 	int              ret;
diff --git a/src/buffers.c b/src/buffers.c
index 6eeb64f..6d87ef9 100644
--- a/src/buffers.c
+++ b/src/buffers.c
@@ -26,7 +26,7 @@
 /* perform minimal intializations, report 0 in case of error, 1 if OK. */
 int init_buffer()
 {
-	pool2_buffer = create_pool("buffer", sizeof(struct buffer) + global.tune.bufsize, MEM_F_SHARED);
+	pool2_buffer = create_pool("buffer", sizeof(struct channel) + global.tune.bufsize, MEM_F_SHARED);
 	return pool2_buffer != NULL;
 }
 
@@ -38,7 +38,7 @@
  * Directly touching ->to_forward will cause lockups when ->o goes down to
  * zero if nobody is ready to push the remaining data.
  */
-unsigned long long buffer_forward(struct buffer *buf, unsigned long long bytes)
+unsigned long long buffer_forward(struct channel *buf, unsigned long long bytes)
 {
 	unsigned int new_forward;
 	unsigned int forwarded;
@@ -96,7 +96,7 @@
  * Note: this function appends data to the buffer's output and possibly overwrites
  * any pending input data which are assumed not to exist.
  */
-int bo_inject(struct buffer *buf, const char *msg, int len)
+int bo_inject(struct channel *buf, const char *msg, int len)
 {
 	int max;
 
@@ -136,7 +136,7 @@
  * flags FULL, EMPTY and READ_PARTIAL are updated if some data can be
  * transferred.
  */
-int bi_putchr(struct buffer *buf, char c)
+int bi_putchr(struct channel *buf, char c)
 {
 	if (unlikely(buffer_input_closed(buf)))
 		return -2;
@@ -169,7 +169,7 @@
  * Buffer flags FULL, EMPTY and READ_PARTIAL are updated if some data can be
  * transferred.
  */
-int bi_putblk(struct buffer *buf, const char *blk, int len)
+int bi_putblk(struct channel *buf, const char *blk, int len)
 {
 	int max;
 
@@ -228,7 +228,7 @@
  * output are full. If either of them is full, the string may be returned
  * as is, without the '\n'.
  */
-int bo_getline(struct buffer *buf, char *str, int len)
+int bo_getline(struct channel *buf, char *str, int len)
 {
 	int ret, max;
 	char *p;
@@ -276,7 +276,7 @@
  * The buffer status is not changed. The caller must call bo_skip() to
  * update it.
  */
-int bo_getblk(struct buffer *buf, char *blk, int len, int offset)
+int bo_getblk(struct channel *buf, char *blk, int len, int offset)
 {
 	int firstblock;
 
@@ -315,7 +315,7 @@
  * <orig> is not updated. The string length is taken from parameter <len>. If
  * <len> is null, the <str> pointer is allowed to be null.
  */
-int buffer_replace2(struct buffer *b, char *pos, char *end, const char *str, int len)
+int buffer_replace2(struct channel *b, char *pos, char *end, const char *str, int len)
 {
 	int delta;
 
@@ -357,7 +357,7 @@
  *
  * The number of bytes added is returned on success. 0 is returned on failure.
  */
-int buffer_insert_line2(struct buffer *b, char *pos, const char *str, int len)
+int buffer_insert_line2(struct channel *b, char *pos, const char *str, int len)
 {
 	int delta;
 
@@ -390,7 +390,7 @@
  * becomes contiguous and starts at the beginning of the buffer area. The
  * function may only be used when the buffer's output is empty.
  */
-void buffer_slow_realign(struct buffer *buf)
+void buffer_slow_realign(struct channel *buf)
 {
 	/* two possible cases :
 	 *   - the buffer is in one contiguous block, we move it in-place
@@ -420,7 +420,7 @@
  * so it's desirable to use it only on non-contiguous buffers. No pointers are
  * changed, the caller is responsible for that.
  */
-void buffer_bounce_realign(struct buffer *buf)
+void buffer_bounce_realign(struct channel *buf)
 {
 	int advance, to_move;
 	char *from, *to;
@@ -584,7 +584,7 @@
 /*
  * Dumps part or all of a buffer.
  */
-void buffer_dump(FILE *o, struct buffer *b, int from, int to)
+void buffer_dump(FILE *o, struct channel *b, int from, int to)
 {
 	fprintf(o, "Dumping buffer %p\n", b);
 	fprintf(o, "  data=%p o=%d i=%d p=%p\n",
diff --git a/src/dumpstats.c b/src/dumpstats.c
index a125242..a3d0f28 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -1456,8 +1456,8 @@
  */
 static void cli_io_handler(struct stream_interface *si)
 {
-	struct buffer *req = si->ob;
-	struct buffer *res = si->ib;
+	struct channel *req = si->ob;
+	struct channel *res = si->ib;
 	int reql;
 	int len;
 
@@ -1816,8 +1816,8 @@
 static void http_stats_io_handler(struct stream_interface *si)
 {
 	struct session *s = si->conn.data_ctx;
-	struct buffer *req = si->ob;
-	struct buffer *res = si->ib;
+	struct channel *req = si->ob;
+	struct channel *res = si->ib;
 
 	if (unlikely(si->state == SI_ST_DIS || si->state == SI_ST_CLO))
 		goto out;
@@ -1872,7 +1872,7 @@
 static int stats_dump_http(struct stream_interface *si, struct uri_auth *uri)
 {
 	struct session *s = si->conn.data_ctx;
-	struct buffer *rep = si->ib;
+	struct channel *rep = si->ib;
 	struct proxy *px;
 	struct chunk msg;
 	unsigned int up;
@@ -2242,7 +2242,7 @@
 static int stats_dump_proxy(struct stream_interface *si, struct proxy *px, struct uri_auth *uri)
 {
 	struct session *s = si->conn.data_ctx;
-	struct buffer *rep = si->ib;
+	struct channel *rep = si->ib;
 	struct server *sv, *svs;	/* server and server-state, server-state=server or server->track */
 	struct listener *l;
 	struct chunk msg;
diff --git a/src/frontend.c b/src/frontend.c
index 82699dc..8405bf6 100644
--- a/src/frontend.c
+++ b/src/frontend.c
@@ -251,7 +251,7 @@
  * are removed from the buffer. The function returns zero if it needs to wait
  * for more data (max: timeout_client), or 1 if it has finished and removed itself.
  */
-int frontend_decode_proxy_request(struct session *s, struct buffer *req, int an_bit)
+int frontend_decode_proxy_request(struct session *s, struct channel *req, int an_bit)
 {
 	char *line = req->data;
 	char *end = req->data + req->i;
diff --git a/src/proto_http.c b/src/proto_http.c
index 08e2c9d..173ba32 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -1290,7 +1290,7 @@
 {
 	unsigned int state;       /* updated only when leaving the FSM */
 	register char *ptr, *end; /* request pointers, to avoid dereferences */
-	struct buffer *buf = msg->buf;
+	struct channel *buf = msg->buf;
 
 	state = msg->msg_state;
 	ptr = buf->p + msg->next;
@@ -1747,7 +1747,7 @@
  */
 int http_parse_chunk_size(struct http_msg *msg)
 {
-	const struct buffer *buf = msg->buf;
+	const struct channel *buf = msg->buf;
 	const char *ptr = b_ptr(buf, msg->next);
 	const char *ptr_old = ptr;
 	const char *end = buf->data + buf->size;
@@ -1855,7 +1855,7 @@
  */
 int http_forward_trailers(struct http_msg *msg)
 {
-	const struct buffer *buf = msg->buf;
+	const struct channel *buf = msg->buf;
 
 	/* we have msg->next which points to next line. Look for CRLF. */
 	while (1) {
@@ -1929,7 +1929,7 @@
  */
 int http_skip_chunk_crlf(struct http_msg *msg)
 {
-	const struct buffer *buf = msg->buf;
+	const struct channel *buf = msg->buf;
 	const char *ptr;
 	int bytes;
 
@@ -1971,7 +1971,7 @@
  * when it has nothing left to do, and may remove any analyser when it wants to
  * abort.
  */
-int http_wait_for_request(struct session *s, struct buffer *req, int an_bit)
+int http_wait_for_request(struct session *s, struct channel *req, int an_bit)
 {
 	/*
 	 * We will parse the partial (or complete) lines.
@@ -2519,7 +2519,7 @@
  * Parse the posted data and enable/disable servers if necessary.
  * Returns 1 if request was parsed or zero if it needs more data.
  */
-int http_process_req_stat_post(struct stream_interface *si, struct http_txn *txn, struct buffer *req)
+int http_process_req_stat_post(struct stream_interface *si, struct http_txn *txn, struct channel *req)
 {
 	struct proxy *px = NULL;
 	struct server *sv = NULL;
@@ -2772,7 +2772,7 @@
  * either needs more data or wants to immediately abort the request (eg: deny,
  * error, ...).
  */
-int http_process_req_common(struct session *s, struct buffer *req, int an_bit, struct proxy *px)
+int http_process_req_common(struct session *s, struct channel *req, int an_bit, struct proxy *px)
 {
 	struct http_txn *txn = &s->txn;
 	struct http_msg *msg = &txn->req;
@@ -3237,7 +3237,7 @@
  * needs more data, encounters an error, or wants to immediately abort the
  * request. It relies on buffers flags, and updates s->req->analysers.
  */
-int http_process_request(struct session *s, struct buffer *req, int an_bit)
+int http_process_request(struct session *s, struct channel *req, int an_bit)
 {
 	struct http_txn *txn = &s->txn;
 	struct http_msg *msg = &txn->req;
@@ -3517,7 +3517,7 @@
  * returns zero, at the beginning because it prevents any other processing
  * from occurring, and at the end because it terminates the request.
  */
-int http_process_tarpit(struct session *s, struct buffer *req, int an_bit)
+int http_process_tarpit(struct session *s, struct channel *req, int an_bit)
 {
 	struct http_txn *txn = &s->txn;
 
@@ -3563,7 +3563,7 @@
  * because it expects the request to be parsed. It returns zero if it needs to
  * read more data, or 1 once it has completed its analysis.
  */
-int http_process_request_body(struct session *s, struct buffer *req, int an_bit)
+int http_process_request_body(struct session *s, struct channel *req, int an_bit)
 {
 	struct http_txn *txn = &s->txn;
 	struct http_msg *msg = &s->txn.req;
@@ -3702,7 +3702,7 @@
 
 	char *hdr_name = be->server_id_hdr_name;
 	int hdr_name_len = be->server_id_hdr_len;
-	struct buffer *req = txn->req.buf;
+	struct channel *req = txn->req.buf;
 	char *hdr_val;
 	unsigned int old_o, old_i;
 
@@ -3881,7 +3881,7 @@
  */
 int http_sync_req_state(struct session *s)
 {
-	struct buffer *buf = s->req;
+	struct channel *buf = s->req;
 	struct http_txn *txn = &s->txn;
 	unsigned int old_flags = buf->flags;
 	unsigned int old_state = txn->req.msg_state;
@@ -4002,7 +4002,7 @@
  */
 int http_sync_res_state(struct session *s)
 {
-	struct buffer *buf = s->rep;
+	struct channel *buf = s->rep;
 	struct http_txn *txn = &s->txn;
 	unsigned int old_flags = buf->flags;
 	unsigned int old_state = txn->rsp.msg_state;
@@ -4202,7 +4202,7 @@
  * bytes of pending data + the headers if not already done (between sol and sov).
  * It eventually adjusts sol to match sov after the data in between have been sent.
  */
-int http_request_forward_body(struct session *s, struct buffer *req, int an_bit)
+int http_request_forward_body(struct session *s, struct channel *req, int an_bit)
 {
 	struct http_txn *txn = &s->txn;
 	struct http_msg *msg = &s->txn.req;
@@ -4468,7 +4468,7 @@
  * when it has nothing left to do, and may remove any analyser when it wants to
  * abort.
  */
-int http_wait_for_response(struct session *s, struct buffer *rep, int an_bit)
+int http_wait_for_response(struct session *s, struct channel *rep, int an_bit)
 {
 	struct http_txn *txn = &s->txn;
 	struct http_msg *msg = &txn->rsp;
@@ -4897,7 +4897,7 @@
  * and updates t->rep->analysers. It might make sense to explode it into several
  * other functions. It works like process_request (see indications above).
  */
-int http_process_res_common(struct session *t, struct buffer *rep, int an_bit, struct proxy *px)
+int http_process_res_common(struct session *t, struct channel *rep, int an_bit, struct proxy *px)
 {
 	struct http_txn *txn = &t->txn;
 	struct http_msg *msg = &txn->rsp;
@@ -5269,7 +5269,7 @@
  * bytes of pending data + the headers if not already done (between sol and sov).
  * It eventually adjusts sol to match sov after the data in between have been sent.
  */
-int http_response_forward_body(struct session *s, struct buffer *res, int an_bit)
+int http_response_forward_body(struct session *s, struct channel *res, int an_bit)
 {
 	struct http_txn *txn = &s->txn;
 	struct http_msg *msg = &s->txn.rsp;
@@ -5498,7 +5498,7 @@
  * Since it can manage the switch to another backend, it updates the per-proxy
  * DENY stats.
  */
-int apply_filter_to_req_headers(struct session *t, struct buffer *req, struct hdr_exp *exp)
+int apply_filter_to_req_headers(struct session *t, struct channel *req, struct hdr_exp *exp)
 {
 	char term;
 	char *cur_ptr, *cur_end, *cur_next;
@@ -5632,7 +5632,7 @@
  * Since it can manage the switch to another backend, it updates the per-proxy
  * DENY stats.
  */
-int apply_filter_to_req_line(struct session *t, struct buffer *req, struct hdr_exp *exp)
+int apply_filter_to_req_line(struct session *t, struct channel *req, struct hdr_exp *exp)
 {
 	char term;
 	char *cur_ptr, *cur_end;
@@ -5749,7 +5749,7 @@
  * unparsable request. Since it can manage the switch to another backend, it
  * updates the per-proxy DENY stats.
  */
-int apply_filters_to_request(struct session *s, struct buffer *req, struct proxy *px)
+int apply_filters_to_request(struct session *s, struct channel *req, struct proxy *px)
 {
 	struct http_txn *txn = &s->txn;
 	struct hdr_exp *exp;
@@ -5914,7 +5914,7 @@
  *   - there are non-space chars before <from> ;
  *   - there is a CR/LF at or after <next>.
  */
-int del_hdr_value(struct buffer *buf, char **from, char *next)
+int del_hdr_value(struct channel *buf, char **from, char *next)
 {
 	char *prev = *from;
 
@@ -5956,7 +5956,7 @@
  * of the multiple very crappy and ambiguous syntaxes we have to support. it
  * highly recommended not to touch this part without a good reason !
  */
-void manage_client_side_cookies(struct session *t, struct buffer *req)
+void manage_client_side_cookies(struct session *t, struct channel *req)
 {
 	struct http_txn *txn = &t->txn;
 	int preserve_hdr;
@@ -6405,7 +6405,7 @@
 /* Iterate the same filter through all response headers contained in <rtr>.
  * Returns 1 if this filter can be stopped upon return, otherwise 0.
  */
-int apply_filter_to_resp_headers(struct session *t, struct buffer *rtr, struct hdr_exp *exp)
+int apply_filter_to_resp_headers(struct session *t, struct channel *rtr, struct hdr_exp *exp)
 {
 	char term;
 	char *cur_ptr, *cur_end, *cur_next;
@@ -6504,7 +6504,7 @@
  * Returns 0 if nothing has been done, 1 if the filter has been applied,
  * or -1 if a replacement resulted in an invalid status line.
  */
-int apply_filter_to_sts_line(struct session *t, struct buffer *rtr, struct hdr_exp *exp)
+int apply_filter_to_sts_line(struct session *t, struct channel *rtr, struct hdr_exp *exp)
 {
 	char term;
 	char *cur_ptr, *cur_end;
@@ -6587,7 +6587,7 @@
  * Returns 0 if everything is alright, or -1 in case a replacement lead to an
  * unparsable response.
  */
-int apply_filters_to_response(struct session *s, struct buffer *rtr, struct proxy *px)
+int apply_filters_to_response(struct session *s, struct channel *rtr, struct proxy *px)
 {
 	struct http_txn *txn = &s->txn;
 	struct hdr_exp *exp;
@@ -6644,7 +6644,7 @@
  * desirable to call it only when needed. This function is also used when we
  * just need to know if there is a cookie (eg: for check-cache).
  */
-void manage_server_side_cookies(struct session *t, struct buffer *res)
+void manage_server_side_cookies(struct session *t, struct channel *res)
 {
 	struct http_txn *txn = &t->txn;
 	struct server *srv;
@@ -7007,7 +7007,7 @@
 /*
  * Check if response is cacheable or not. Updates t->flags.
  */
-void check_response_for_cacheability(struct session *t, struct buffer *rtr)
+void check_response_for_cacheability(struct session *t, struct channel *rtr)
 {
 	struct http_txn *txn = &t->txn;
 	char *p1, *p2;
@@ -7258,7 +7258,7 @@
                               struct http_msg *msg,
 			      int state, struct proxy *other_end)
 {
-	struct buffer *buf = msg->buf;
+	struct channel *buf = msg->buf;
 	int len1, len2;
 
 	es->len = MIN(buf->i, sizeof(es->buf));
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 6c411af..57339c6 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -785,7 +785,7 @@
  * function may be called for frontend rules and backend rules. It only relies
  * on the backend pointer so this works for both cases.
  */
-int tcp_inspect_request(struct session *s, struct buffer *req, int an_bit)
+int tcp_inspect_request(struct session *s, struct channel *req, int an_bit)
 {
 	struct tcp_rule *rule;
 	struct stksess *ts;
@@ -905,7 +905,7 @@
  * response. It relies on buffers flags, and updates s->rep->analysers. The
  * function may be called for backend rules.
  */
-int tcp_inspect_response(struct session *s, struct buffer *rep, int an_bit)
+int tcp_inspect_response(struct session *s, struct channel *rep, int an_bit)
 {
 	struct tcp_rule *rule;
 	int partial;
@@ -1583,7 +1583,7 @@
 	unsigned int len_size = arg_p[1].data.uint;
 	unsigned int buf_offset;
 	unsigned int buf_size = 0;
-	struct buffer *b;
+	struct channel *b;
 	int i;
 
 	/* Format is (len offset, len size, buf offset) or (len offset, len size) */
@@ -1638,7 +1638,7 @@
 {
 	unsigned int buf_offset = arg_p[0].data.uint;
 	unsigned int buf_size = arg_p[1].data.uint;
-	struct buffer *b;
+	struct channel *b;
 
 	if (!l4)
 		return 0;
diff --git a/src/session.c b/src/session.c
index 6612f0a..3984104 100644
--- a/src/session.c
+++ b/src/session.c
@@ -533,8 +533,8 @@
  */
 static int sess_update_st_con_tcp(struct session *s, struct stream_interface *si)
 {
-	struct buffer *req = si->ob;
-	struct buffer *rep = si->ib;
+	struct channel *req = si->ob;
+	struct channel *rep = si->ib;
 
 	/* If we got an error, or if nothing happened and the connection timed
 	 * out, we must give up. The CER state handler will take care of retry
@@ -683,8 +683,8 @@
  */
 static void sess_establish(struct session *s, struct stream_interface *si)
 {
-	struct buffer *req = si->ob;
-	struct buffer *rep = si->ib;
+	struct channel *req = si->ob;
+	struct channel *rep = si->ib;
 
 	if (target_srv(&s->target))
 		health_adjust(target_srv(&s->target), HANA_STATUS_L4_OK);
@@ -954,7 +954,7 @@
  * It returns 1 if the processing can continue on next analysers, or zero if it
  * either needs more data or wants to immediately abort the request.
  */
-static int process_switching_rules(struct session *s, struct buffer *req, int an_bit)
+static int process_switching_rules(struct session *s, struct channel *req, int an_bit)
 {
 	struct persist_rule *prst_rule;
 
@@ -1051,7 +1051,7 @@
  * it then returns 1. The data must already be present in the buffer otherwise
  * they won't match. It always returns 1.
  */
-static int process_server_rules(struct session *s, struct buffer *req, int an_bit)
+static int process_server_rules(struct session *s, struct channel *req, int an_bit)
 {
 	struct proxy *px = s->be;
 	struct server_rule *rule;
@@ -1100,7 +1100,7 @@
  * it then returns 1. The data must already be present in the buffer otherwise
  * they won't match. It always returns 1.
  */
-static int process_sticking_rules(struct session *s, struct buffer *req, int an_bit)
+static int process_sticking_rules(struct session *s, struct channel *req, int an_bit)
 {
 	struct proxy    *px   = s->be;
 	struct sticking_rule  *rule;
@@ -1189,7 +1189,7 @@
  * then returns 1. The data must already be present in the buffer otherwise
  * they won't match. It always returns 1.
  */
-static int process_store_rules(struct session *s, struct buffer *rep, int an_bit)
+static int process_store_rules(struct session *s, struct channel *rep, int an_bit)
 {
 	struct proxy    *px   = s->be;
 	struct sticking_rule  *rule;
diff --git a/src/sock_raw.c b/src/sock_raw.c
index 991b46b..272935a 100644
--- a/src/sock_raw.c
+++ b/src/sock_raw.c
@@ -74,7 +74,7 @@
  * This function automatically allocates a pipe from the pipe pool. It also
  * carefully ensures to clear b->pipe whenever it leaves the pipe empty.
  */
-static int sock_raw_splice_in(struct buffer *b, struct stream_interface *si)
+static int sock_raw_splice_in(struct channel *b, struct stream_interface *si)
 {
 	static int splice_detects_close;
 	int fd = si_fd(si);
@@ -216,7 +216,7 @@
 {
 	int fd = conn->t.sock.fd;
 	struct stream_interface *si = container_of(conn, struct stream_interface, conn);
-	struct buffer *b = si->ib;
+	struct channel *b = si->ib;
 	int ret, max, cur_read;
 	int read_poll = MAX_READ_POLL_LOOPS;
 
@@ -452,7 +452,7 @@
 static int sock_raw_write_loop(struct connection *conn)
 {
 	struct stream_interface *si = container_of(conn, struct stream_interface, conn);
-	struct buffer *b = si->ob;
+	struct channel *b = si->ob;
 	int write_poll = MAX_WRITE_POLL_LOOPS;
 	int ret, max;
 
diff --git a/src/stream_interface.c b/src/stream_interface.c
index 17f2447..08560a9 100644
--- a/src/stream_interface.c
+++ b/src/stream_interface.c
@@ -354,7 +354,7 @@
 /* default chk_rcv function for scheduled tasks */
 static void stream_int_chk_rcv(struct stream_interface *si)
 {
-	struct buffer *ib = si->ib;
+	struct channel *ib = si->ib;
 
 	DPRINTF(stderr, "%s: si=%p, si->state=%d ib->flags=%08x ob->flags=%08x\n",
 		__FUNCTION__,
@@ -379,7 +379,7 @@
 /* default chk_snd function for scheduled tasks */
 static void stream_int_chk_snd(struct stream_interface *si)
 {
-	struct buffer *ob = si->ob;
+	struct channel *ob = si->ob;
 
 	DPRINTF(stderr, "%s: si=%p, si->state=%d ib->flags=%08x ob->flags=%08x\n",
 		__FUNCTION__,
@@ -482,7 +482,7 @@
 {
 	int fd = conn->t.sock.fd;
 	struct stream_interface *si = container_of(conn, struct stream_interface, conn);
-	struct buffer *b = si->ob;
+	struct channel *b = si->ob;
 
 	/* we might have been called just after an asynchronous shutw */
 	if (b->flags & BF_SHUTW)
@@ -664,8 +664,8 @@
  */
 void stream_int_update_conn(struct stream_interface *si)
 {
-	struct buffer *ib = si->ib;
-	struct buffer *ob = si->ob;
+	struct channel *ib = si->ib;
+	struct channel *ob = si->ob;
 
 	if (si->conn.flags & CO_FL_HANDSHAKE) {
 		/* a handshake is in progress */
@@ -742,7 +742,7 @@
  */
 void stream_int_chk_rcv_conn(struct stream_interface *si)
 {
-	struct buffer *ib = si->ib;
+	struct channel *ib = si->ib;
 
 	if (unlikely(si->state != SI_ST_EST || (ib->flags & BF_SHUTR)))
 		return;
@@ -773,7 +773,7 @@
  */
 void stream_int_chk_snd_conn(struct stream_interface *si)
 {
-	struct buffer *ob = si->ob;
+	struct channel *ob = si->ob;
 
 	if (unlikely(si->state != SI_ST_EST || (ob->flags & BF_SHUTW)))
 		return;
@@ -872,7 +872,7 @@
 void si_conn_send_cb(struct connection *conn)
 {
 	struct stream_interface *si = container_of(conn, struct stream_interface, conn);
-	struct buffer *b = si->ob;
+	struct channel *b = si->ob;
 
 	if (conn->flags & CO_FL_ERROR)
 		goto out_error;