diff options
author | Nick Mathewson <nickm@torproject.org> | 2009-12-24 17:47:14 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2009-12-28 16:59:07 -0500 |
commit | 82743794d37b0ddece31c0d4f637d2f7d0896f2d (patch) | |
tree | 9735ddf957fc1f9dd22f2196844000b008dcf62a /bufferevent_sock.c | |
parent | f0c0124e603945f4693ae1457c7b9ef2b08689bf (diff) | |
download | libevent-82743794d37b0ddece31c0d4f637d2f7d0896f2d.tar.gz |
Do not make bufferevent_setfd implicitly disable EV_READ and EV_WRITE.
This obviates the need for BEV_SUSPEND_CONNECTING, and good riddance.
Diffstat (limited to 'bufferevent_sock.c')
-rw-r--r-- | bufferevent_sock.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/bufferevent_sock.c b/bufferevent_sock.c index f53689ee..d1b5792a 100644 --- a/bufferevent_sock.c +++ b/bufferevent_sock.c @@ -222,7 +222,6 @@ bufferevent_writecb(evutil_socket_t fd, short event, void *arg) goto done; } else { connected = 1; - bufferevent_unsuspend_read(bufev, BEV_SUSPEND_CONNECTING); #ifdef WIN32 if (BEV_IS_ASYNC(bufev)) { event_del(&bufev->ev_write); @@ -408,11 +407,7 @@ freesock: if (ownfd) EVUTIL_CLOSESOCKET(fd); /* do something about the error? */ - done: - if (result == 0) - bufferevent_suspend_read(bev, BEV_SUSPEND_CONNECTING); - _bufferevent_decref_and_unlock(bev); return result; } @@ -575,6 +570,10 @@ be_socket_setfd(struct bufferevent *bufev, evutil_socket_t fd) EV_READ|EV_PERSIST, bufferevent_readcb, bufev); event_assign(&bufev->ev_write, bufev->ev_base, fd, EV_WRITE|EV_PERSIST, bufferevent_writecb, bufev); + + if (fd >= 0) + bufferevent_enable(bufev, bufev->enabled); + BEV_UNLOCK(bufev); } |