From dd183f7c97777e8937187c0041be383338d0c0ad Mon Sep 17 00:00:00 2001 From: Niels Provos Date: Sun, 27 Apr 2008 00:32:10 +0000 Subject: [PATCH] provide bufferevent_input and bufferevent_output without requiring knowledge of the structure svn:r734 --- ChangeLog | 3 ++- evbuffer.c | 12 ++++++++++++ include/event2/bufferevent.h | 22 ++++++++++++++++++++-- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index ac99ef34..f5f2dfe8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -74,7 +74,8 @@ Changes in current version: o expose bufferevent_setwatermark via header files and fix high watermark on read o fix a bug in buffrevent read water marks and add a test for them o fix a bug in which bufferevent_write_buffer would not schedule a write event - + o provide bufferevent_input and bufferevent_output without requiring knowledge of the structure + Changes in 1.4.0: o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr. o demote most http warnings to debug messages diff --git a/evbuffer.c b/evbuffer.c index f5667bd2..ca86ae39 100644 --- a/evbuffer.c +++ b/evbuffer.c @@ -273,6 +273,18 @@ bufferevent_new(evutil_socket_t fd, evbuffercb readcb, evbuffercb writecb, return (bufev); } +struct evbuffer * +bufferevent_input(struct bufferevent *bufev) +{ + return (bufev->input); +} + +struct evbuffer * +bufferevent_output(struct bufferevent *bufev) +{ + return (bufev->output); +} + int bufferevent_priority_set(struct bufferevent *bufev, int priority) { diff --git a/include/event2/bufferevent.h b/include/event2/bufferevent.h index 2377ca35..f607d484 100644 --- a/include/event2/bufferevent.h +++ b/include/event2/bufferevent.h @@ -191,6 +191,24 @@ size_t bufferevent_read(struct bufferevent *bufev, void *data, size_t size); */ int bufferevent_read_buffer(struct bufferevent *bufev, struct evbuffer *buf); +/** + Returns the input buffer. + + @param bufev the buffervent from which to get the evbuffer + @return the evbuffer object for the input buffer + */ + +struct evbuffer *bufferevent_input(struct bufferevent *bufev); + +/** + Returns the outut buffer. + + @param bufev the buffervent from which to get the evbuffer + @return the evbuffer object for the output buffer + */ + +struct evbuffer *bufferevent_output(struct bufferevent *bufev); + /** Enable a bufferevent. @@ -242,8 +260,8 @@ void bufferevent_settimeout(struct bufferevent *bufev, void bufferevent_setwatermark(struct bufferevent *bufev, short events, size_t lowmark, size_t highmark); -#define EVBUFFER_INPUT(x) (x)->input -#define EVBUFFER_OUTPUT(x) (x)->output +#define EVBUFFER_INPUT(x) bufferevent_input(x) +#define EVBUFFER_OUTPUT(x) bufferevent_output(x) #ifdef __cplusplus -- 2.40.0