Forráskód Böngészése

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

Nick Mathewson 17 éve
szülő
commit
2d7cf75e42
2 módosított fájl, 6 hozzáadás és 5 törlés
  1. 5 3
      src/or/connection_edge.c
  2. 1 2
      src/or/relay.c

+ 5 - 3
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)

+ 1 - 2
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) ||