[or-cvs] r9514: Fix patch for 9510: never call control_event_stream_status o (in tor/trunk: . src/or)

nickm at seul.org nickm at seul.org
Wed Feb 7 18:25:09 UTC 2007


Author: nickm
Date: 2007-02-07 13:25:04 -0500 (Wed, 07 Feb 2007)
New Revision: 9514

Modified:
   tor/trunk/
   tor/trunk/src/or/circuitlist.c
   tor/trunk/src/or/connection_edge.c
Log:
 r11694 at catbus:  nickm | 2007-02-07 13:25:01 -0500
 Fix patch for 9510: never call control_event_stream_status on an exit connection. Should fix assert() noticed by xiando.



Property changes on: tor/trunk
___________________________________________________________________
 svk:merge ticket from /tor/trunk [r11694] on 8246c3cf-6607-4228-993b-4d95d33730f1

Modified: tor/trunk/src/or/circuitlist.c
===================================================================
--- tor/trunk/src/or/circuitlist.c	2007-02-07 06:54:37 UTC (rev 9513)
+++ tor/trunk/src/or/circuitlist.c	2007-02-07 18:25:04 UTC (rev 9514)
@@ -948,14 +948,12 @@
       conn = or_circ->resolving_streams;
       or_circ->resolving_streams = conn->next_stream;
       if (!conn->_base.marked_for_close) {
-        /* The other side will see a DESTROY, and infer that the connections
+        /* The client will see a DESTROY, and infer that the connections
          * are closing because the circuit is getting torn down.  No need
          * to send an end cell. */
         conn->_base.edge_has_sent_end = 1;
         conn->end_reason = END_STREAM_REASON_DESTROY;
         conn->end_reason |= END_STREAM_REASON_FLAG_ALREADY_SENT_CLOSED;
-        control_event_stream_status(conn, STREAM_EVENT_CLOSED,
-                                    END_STREAM_REASON_DESTROY);
         connection_mark_for_close(TO_CONN(conn));
       }
       conn->on_circuit = NULL;

Modified: tor/trunk/src/or/connection_edge.c
===================================================================
--- tor/trunk/src/or/connection_edge.c	2007-02-07 06:54:37 UTC (rev 9513)
+++ tor/trunk/src/or/connection_edge.c	2007-02-07 18:25:04 UTC (rev 9514)
@@ -159,8 +159,9 @@
       conn->_base.edge_has_sent_end = 1;
       conn->end_reason = END_STREAM_REASON_DESTROY;
       conn->end_reason |= END_STREAM_REASON_FLAG_ALREADY_SENT_CLOSED;
-      control_event_stream_status(conn, STREAM_EVENT_CLOSED,
-                                  END_STREAM_REASON_DESTROY);
+      if (conn->_base.type == CONN_TYPE_AP)
+        control_event_stream_status(conn, STREAM_EVENT_CLOSED,
+                                    END_STREAM_REASON_DESTROY);
       connection_mark_for_close(TO_CONN(conn));
       conn->_base.hold_open_until_flushed = 1;
     }



More information about the tor-commits mailing list