From 57b72488233f749cd402d6133b5e4b1fb83878d3 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Sat, 27 Feb 2010 22:27:13 -0500 Subject: [PATCH] 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. --- bufferevent_sock.c | 12 +++++------- evutil.c | 1 + 2 files changed, 6 insertions(+), 7 deletions(-) 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) -- 2.50.1