From fa6fbbc150a0f8e750c979af3c0d2d1278b856dd Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 14 Nov 2006 00:06:02 +0000 Subject: r9307@totoro: nickm | 2006-11-13 18:25:56 -0500 Patch from tup based on patch from Zajcev Evgeny: Make TransPort work even when the server wants to talk before the client. svn:r8945 --- src/or/connection.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/or/connection.c') diff --git a/src/or/connection.c b/src/or/connection.c index b7a3889cdf..ce7046675e 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -96,7 +96,6 @@ conn_state_to_string(int type, int state) break; case CONN_TYPE_AP: switch (state) { - case AP_CONN_STATE_ORIGDST_WAIT: case AP_CONN_STATE_SOCKS_WAIT: return "waiting for dest info"; case AP_CONN_STATE_RENDDESC_WAIT: return "waiting for rendezvous desc"; case AP_CONN_STATE_CONTROLLER_WAIT: return "waiting for controller"; @@ -808,6 +807,8 @@ connection_handle_listener_read(connection_t *conn, int new_type) /** Initialize states for newly accepted connection conn. * If conn is an OR, start the tls handshake. + * If conn is a transparent AP, get its original destination + * and place it in circuit_wait. */ static int connection_init_accepted_conn(connection_t *conn, uint8_t listener_type) @@ -824,8 +825,8 @@ connection_init_accepted_conn(connection_t *conn, uint8_t listener_type) conn->state = AP_CONN_STATE_SOCKS_WAIT; break; case CONN_TYPE_AP_TRANS_LISTENER: - conn->state = AP_CONN_STATE_ORIGDST_WAIT; - break; + conn->state = AP_CONN_STATE_CIRCUIT_WAIT; + return connection_ap_process_transparent(TO_EDGE_CONN(conn)); } break; case CONN_TYPE_DIR: -- cgit v1.2.3-54-g00ecf