Sfoglia il codice sorgente

fix assert while attachstream'ing a connect-wait or
resolve-wait stream.


svn:r6134

Roger Dingledine 19 anni fa
parent
commit
b5c6a990d3
1 ha cambiato i file con 5 aggiunte e 5 eliminazioni
  1. 5 5
      src/or/control.c

+ 5 - 5
src/or/control.c

@@ -1831,13 +1831,13 @@ handle_control_attachstream(connection_t *conn, uint32_t len,
 
   /* Do we need to detach it first? */
   if (ap_conn->state != AP_CONN_STATE_CONTROLLER_WAIT) {
-    circuit_t *tmpcirc = circuit_get_by_edge_conn(conn);
-    connection_edge_end(conn, END_STREAM_REASON_TIMEOUT, conn->cpath_layer);
+    circuit_t *tmpcirc = circuit_get_by_edge_conn(ap_conn);
+    connection_edge_end(ap_conn, END_STREAM_REASON_TIMEOUT, conn->cpath_layer);
     /* Un-mark it as ending, since we're going to reuse it. */
-    conn->has_sent_end = 0;
+    ap_conn->has_sent_end = 0;
     if (tmpcirc)
-      circuit_detach_stream(tmpcirc,conn);
-    conn->state = AP_CONN_STATE_CONTROLLER_WAIT;
+      circuit_detach_stream(tmpcirc,ap_conn);
+    ap_conn->state = AP_CONN_STATE_CONTROLLER_WAIT;
   }
 
   if (zero_circ) {