aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2006-10-20 15:26:02 +0000
committerNick Mathewson <nickm@torproject.org>2006-10-20 15:26:02 +0000
commit2d7cf75e427be142ec3a122e1eb159e3ddb13507 (patch)
tree321e9dd05d47e4936b11eb5c7c01a5870e7fe8d7
parente5f064c983eba136e3d448914995e79f1f55959d (diff)
downloadtor-2d7cf75e427be142ec3a122e1eb159e3ddb13507.tar.gz
tor-2d7cf75e427be142ec3a122e1eb159e3ddb13507.zip
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
-rw-r--r--src/or/connection_edge.c8
-rw-r--r--src/or/relay.c3
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 <b>circ</b>. Else return 0.
+ * Return -(some circuit end reason) if we want to tear down <b>circ</b>.
+ * 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) ||