[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [obfsproxy/master] Don't poke connections or circuits after connect_hostname().



commit 70e6947c81e7c0f42c94e837fdabec271b876567
Author: George Kadianakis <desnacked@xxxxxxxxxx>
Date:   Mon Mar 19 17:10:06 2012 -0700

    Don't poke connections or circuits after connect_hostname().
    
    bufferevent_socket_connect_hostname() might fail immediately, and take
    the whole circuit with it (since pending_socks_cb() and error_or_eof()
    will be called). This means that we should not play with conn_t or
    circuit_t after calling bufferevent_socket_connect_hostname().
---
 src/network.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/network.c b/src/network.c
index 219593f..1d73249 100644
--- a/src/network.c
+++ b/src/network.c
@@ -648,6 +648,12 @@ 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 */
+      bufferevent_disable(conn->buffer, EV_READ|EV_WRITE);
+
       if (bufferevent_socket_connect_hostname(newconn->buffer, get_evdns_base(),
                                               af, addr, port) < 0) {
         log_warn("%s: outbound connection to %s:%u failed: %s",
@@ -656,11 +662,6 @@ socks_read_cb(struct bufferevent *bev, void *arg)
         conn_free(conn);
         return;
       }
-      bufferevent_enable(newconn->buffer, EV_READ|EV_WRITE);
-
-      /* further upstream data will be processed once the downstream
-         side is established */
-      bufferevent_disable(conn->buffer, EV_READ|EV_WRITE);
       return;
     }
 



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits