commit 3d77ba8fdac6ba252d9501fce0021cfdec4ce8ae Author: George Kadianakis desnacked@riseup.net Date: Mon Apr 9 17:04:01 2012 +0200
Don't enable bufferevent reads/writes before connecting.
This caused an assertion failure when we connected to a SOCKS destination. We didn't call pending_socks_cb(), and instead went directly to downstream_read_cb() which asserted that 'circuit_t.is_open' is true.
We now only call bufferevent_enable() on the bufferevent in pending_socks_cb() when we finally connect to our SOCKS destination. --- ChangeLog | 5 +++++ src/network.c | 1 - 2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog index 2a7605c..b2722d4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Changes in version 0.1.4 - <not yet released> + - Fix assertion failure when connecting to a SOCKS destination. Fixes + bug #5586. + + Changes in version 0.1.3 - 2012-04-03 - Display git revision when we start logging. Fixes part of bug #5157. diff --git a/src/network.c b/src/network.c index 1d73249..6efa722 100644 --- a/src/network.c +++ b/src/network.c @@ -648,7 +648,6 @@ socks_read_cb(struct bufferevent *bev, void *arg) }
bufferevent_setcb(newconn->buffer, downstream_read_cb, NULL, pending_socks_cb, newconn); - bufferevent_enable(newconn->buffer, EV_READ|EV_WRITE);
/* further upstream data will be processed once the downstream side is established */