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.
This commit is contained in:
Nick Mathewson 2010-02-27 22:27:13 -05:00
parent 7bc48bfd3a
commit 57b7248823
2 changed files with 6 additions and 7 deletions

View File

@ -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;

View File

@ -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)