From 1fe6bc335a4e0251d7e00edcc7149d3027044258 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 20 Aug 2012 20:27:59 +0200 Subject: [PATCH] MINOR: stream-interface: add an rcv_buf callback to sock_ops This one is to be used by the read I/O handlers. --- include/types/stream_interface.h | 2 ++ src/raw_sock.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/types/stream_interface.h b/include/types/stream_interface.h index 1a75c8d45..018349bbc 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 f5b5f2f1d..7dd90c946 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, };