From: Nick Mathewson Date: Sun, 28 Feb 2010 03:27:13 +0000 (-0500) Subject: Small cleanups on freebsd-connect-refused patch. X-Git-Tag: release-2.0.4-alpha~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=57b72488233f749cd402d6133b5e4b1fb83878d3;p=libevent Small cleanups on freebsd-connect-refused patch. There should be no need to call be_socket_enable: that does an event_add(). What we really want to do is event_active(), to make sure that the writecb is executed. Also, there was one "} if () {" that was missing an else. I've noted that the return value for evutil_socket_connect() is getting screwy, but since that isn't an exported function, we can fix it whenever. --- 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)