diff --git a/bufferevent_sock.c b/bufferevent_sock.c index 22e76032..d731086f 100644 --- a/bufferevent_sock.c +++ b/bufferevent_sock.c @@ -401,19 +401,17 @@ bufferevent_socket_connect(struct bufferevent *bev, result = 0; goto done; } - } if (r == 1) { + } else if (r == 1) { /* The connect succeeded already. How very BSD of it. */ result = 0; bufev_p->connecting = 1; event_active(&bev->ev_write, EV_WRITE, 1); } else { /* The connect failed already. How very BSD of it. */ - if (! be_socket_enable(bev, EV_WRITE)) { - bufev_p->connection_refused = 1; - bufev_p->connecting = 1; - result = 0; - goto done; - } + bufev_p->connection_refused = 1; + bufev_p->connecting = 1; + result = 0; + event_active(&bev->ev_write, EV_WRITE, 1); } goto done; diff --git a/evutil.c b/evutil.c index 7df02149..87c66a6e 100644 --- a/evutil.c +++ b/evutil.c @@ -355,6 +355,7 @@ evutil_socket_geterror(evutil_socket_t sock) } #endif +/* XXX we should use an enum here. */ /* 2 for connection refused, 1 for connected, 0 for not yet, -1 for error. */ int evutil_socket_connect(evutil_socket_t *fd_ptr, struct sockaddr *sa, int socklen)