New function to expose bufferevent.enabled

svn:r1401
This commit is contained in:
Nick Mathewson 2009-07-31 14:41:45 +00:00
parent 621aafd27a
commit 7c688dd9a2
4 changed files with 22 additions and 1 deletions

View File

@ -9,8 +9,9 @@ Changes in 2.0.3-alpha:
o Make bufferevenr_socket_connect() work when the original fd was -1.
o Fix a bug in bufferevent_socket_connect() when the connection succeeds too quickly.
o Export an evutil_sockaddr_cmp() to compare to sockaddr objects for equality.
o Add a bufferevent_get_enabled() to tell what a bufferevent has been configured to do.
Changes in 2.0.2-alpha:
o Add a new flag to bufferevents to make all callbacks automatically deferred.
o Make evdns functionality locked, and automatically defer dns callbacks.

View File

@ -581,6 +581,16 @@ bufferevent_getfd(struct bufferevent *bev)
return (res<0) ? -1 : d.fd;
}
short
bufferevent_get_enabled(struct bufferevent *bufev)
{
short r;
BEV_LOCK(bufev);
r = bufev->enabled;
BEV_UNLOCK(bufev);
return r;
}
struct bufferevent *
bufferevent_get_underlying(struct bufferevent *bev)
{

View File

@ -322,6 +322,13 @@ int bufferevent_enable(struct bufferevent *bufev, short event);
*/
int bufferevent_disable(struct bufferevent *bufev, short event);
/**
Return the events that are enabled on a given bufferevent.
@param bufev the bufferevent to inspect
@return A combination of EV_READ | EV_WRITE
*/
short bufferevent_get_enabled(struct bufferevent *bufev);
/**
Set the read and write timeout for a buffered event.

View File

@ -140,6 +140,9 @@ test_bufferevent_impl(int use_pair)
bufferevent_disable(bev1, EV_READ);
bufferevent_enable(bev2, EV_READ);
tt_int_op(bufferevent_get_enabled(bev1), ==, EV_WRITE);
tt_int_op(bufferevent_get_enabled(bev2), ==, EV_WRITE|EV_READ);
for (i = 0; i < sizeof(buffer); i++)
buffer[i] = i;