From: Willy Tarreau Date: Mon, 20 Aug 2012 18:27:59 +0000 (+0200) Subject: MINOR: stream-interface: add an rcv_buf callback to sock_ops X-Git-Tag: v1.5-dev12~77 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1fe6bc335a4e0251d7e00edcc7149d3027044258;p=thirdparty%2Fhaproxy.git MINOR: stream-interface: add an rcv_buf callback to sock_ops This one is to be used by the read I/O handlers. --- diff --git a/include/types/stream_interface.h b/include/types/stream_interface.h index 1a75c8d45b..018349bbcc 100644 --- a/include/types/stream_interface.h +++ b/include/types/stream_interface.h @@ -91,6 +91,7 @@ enum { #define SI_FL_CAP_SPLICE (SI_FL_CAP_SPLTCP) +struct buffer; struct server; struct proxy; struct si_applet; @@ -118,6 +119,7 @@ struct sock_ops { void (*write)(struct connection *conn); /* write callback after poll() */ void (*close)(struct connection *); /* close the data channel on the connection */ int (*snd_buf)(struct connection *conn); /* callback used to send a buffer contents */ + int (*rcv_buf)(struct connection *conn, struct buffer *buf, int count); /* recv callback */ }; /* A stream interface has 3 parts : diff --git a/src/raw_sock.c b/src/raw_sock.c index f5b5f2f1d3..7dd90c9468 100644 --- a/src/raw_sock.c +++ b/src/raw_sock.c @@ -343,7 +343,7 @@ static void sock_raw_read(struct connection *conn) break; } - ret = raw_sock_to_buf(conn, &b->buf, max); + ret = conn->data->rcv_buf(conn, &b->buf, max); if (ret <= 0) break; @@ -634,6 +634,7 @@ struct sock_ops raw_sock = { .read = sock_raw_read, .write = si_conn_send_cb, .snd_buf = sock_raw_write_loop, + .rcv_buf = raw_sock_to_buf, .close = NULL, };