]> granicus.if.org Git - libevent/commitdiff
New function to expose bufferevent.enabled
authorNick Mathewson <nickm@torproject.org>
Fri, 31 Jul 2009 14:41:45 +0000 (14:41 +0000)
committerNick Mathewson <nickm@torproject.org>
Fri, 31 Jul 2009 14:41:45 +0000 (14:41 +0000)
svn:r1401

ChangeLog
bufferevent.c
include/event2/bufferevent.h
test/regress_bufferevent.c

index 14eb423bac50ede422596ed96dee61e07271a2b8..9e5be06338672f1d51775d3dd77d02edd6d550bd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 6d9f67ec062794ca69d2d7fd350b0dc8202781a5..051060450160b1f69459048a25c1cd9df3835ecd 100644 (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)
 {
index b0e2395bef72069b1e71d68e88f098daa52935e4..cc3be0500e01494baa9eae25d09ace1af83a0c96 100644 (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.
index cae520420b2f601abc98820d93b4ce0eaeec7fc5..e4c34a6fecb41a31fbfd74a6a59bfc6dfbfd5b9a 100644 (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;