From 2d7cf75e427be142ec3a122e1eb159e3ddb13507 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 20 Oct 2006 15:26:02 +0000 Subject: [PATCH] r9298@dhcp-18-188-67-85: nickm | 2006-10-20 11:25:07 -0400 Weasel correctly notes that we should not discard the return value from connection_exit_begin_con. Right now, the return value is always discardable, so this does not actually cause a bug, but it might later. So fix it. svn:r8774 --- src/or/connection_edge.c | 8 +++++--- src/or/relay.c | 3 +-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index d3232a2475..ad88e4153e 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -1829,7 +1829,8 @@ connection_ap_handshake_socks_reply(edge_connection_t *conn, char *reply, * Note that we don't call connection_add() on the new stream! We wait * for connection_exit_connect() to do that. * - * Return -1 if we want to tear down circ. Else return 0. + * Return -(some circuit end reason) if we want to tear down circ. + * Else return 0. */ int connection_exit_begin_conn(cell_t *cell, circuit_t *circ) @@ -2168,8 +2169,9 @@ connection_exit_connect(edge_connection_t *edge_conn) /** Given an exit conn that should attach to us as a directory server, open a * bridge connection with a socketpair, create a new directory conn, and join * them together. Return 0 on success (or if there was an error we could send - * back an end cell for). Return -1 if the circuit needs to be torn down. - * Either connects exit_conn, frees it, or marks it, as appropriate. + * back an end cell for). Return -(some circuit end reason) if the circuit + * needs to be torn down. Either connects exit_conn, frees it, or marks it, + * as appropriate. */ static int connection_exit_connect_dir(edge_connection_t *exit_conn) diff --git a/src/or/relay.c b/src/or/relay.c index f70ed23170..f084461c89 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -984,8 +984,7 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, "Begin cell for known stream. Dropping."); return 0; } - connection_exit_begin_conn(cell, circ); - return 0; + return connection_exit_begin_conn(cell, circ); case RELAY_COMMAND_DATA: ++stats_n_data_cells_received; if (( layer_hint && --layer_hint->deliver_window < 0) ||