]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
make it work (heh)
authorRoger Dingledine <arma@torproject.org>
Fri, 11 Apr 2003 22:28:51 +0000 (22:28 +0000)
committerRoger Dingledine <arma@torproject.org>
Fri, 11 Apr 2003 22:28:51 +0000 (22:28 +0000)
svn:r231

src/or/connection_edge.c
src/or/or.h

index acae44e61d8f8f4f142254edeb7a702ad20e75b9..4f0a25b99006f0d7aba9635bc78492eaf554e5d7 100644 (file)
@@ -106,7 +106,12 @@ int connection_edge_process_data_cell(cell_t *cell, circuit_t *circ, int edge_ty
 
   circuit_consider_sending_sendme(circ, edge_type);
 
-  for(conn = circ->p_conn; conn && conn->topic_id != topic_id; conn = conn->next_topic) ;
+  if(edge_type == EDGE_AP)
+    conn = circ->p_conn;
+  else
+    conn = circ->n_conn;
+
+  for( ; conn && conn->topic_id != topic_id; conn = conn->next_topic) ;
 
   /* now conn is either NULL, in which case we don't recognize the topic_id, or
    * it is set, in which case cell is talking about this conn.
@@ -247,7 +252,7 @@ int connection_edge_finished_flushing(connection_t *conn) {
       if(connection_wants_to_flush(conn)) /* in case there are any queued data cells */
         connection_start_writing(conn);
       return
-        connection_exit_send_connected(conn) || /* deliver a 'connected' data cell back through the circuit. */
+        connection_edge_send_command(conn, circuit_get_by_conn(conn), TOPIC_COMMAND_CONNECTED) || /* deliver a 'connected' data cell back through the circuit. */
         connection_process_inbuf(conn); /* in case the server has written anything */
     case AP_CONN_STATE_OPEN:
     case EXIT_CONN_STATE_OPEN:
index df7d4085c20fe82e86270cec3fb6d4607e580362..67606aae5c52de5749c6ed465eeb29f9fffba999 100644 (file)
@@ -624,7 +624,7 @@ int connection_ap_handle_listener_read(connection_t *conn);
 /********************************* connection_edge.c ***************************/
 
 int connection_edge_process_inbuf(connection_t *conn);
-int connection_edge_send_command(connection_t *conn, int topic_command);
+int connection_edge_send_command(connection_t *conn, circuit_t *circ, int topic_command);
 int connection_edge_process_data_cell(cell_t *cell, circuit_t *circ, int edge_type);
 int connection_edge_finished_flushing(connection_t *conn);