]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
i was wrong about one of my invariants
authorRoger Dingledine <arma@torproject.org>
Fri, 16 Apr 2004 08:21:35 +0000 (08:21 +0000)
committerRoger Dingledine <arma@torproject.org>
Fri, 16 Apr 2004 08:21:35 +0000 (08:21 +0000)
now it's commented
this should fix asserts when you try an intro point, get a nack,
and try a second one and it works.

svn:r1637

src/or/circuit.c
src/or/connection_edge.c
src/or/rendclient.c

index 44e5d438a6a7129a8851cca15bd63f815acdc41c..27a754591ac766913d22c15cc449e726af13c1d8 100644 (file)
@@ -480,6 +480,10 @@ void circuit_expire_building(time_t now) {
        /* c_rend_ready circs measure age since timestamp_dirty,
         * because that's set when they switch purposes
         */
+       /* rend and intro circs become dirty each time they
+        * make an introduction attempt. so timestamp_dirty
+        * will reflect the time since the last attempt.
+        */
        ((victim->purpose == CIRCUIT_PURPOSE_C_REND_READY ||
          victim->purpose == CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED ||
          victim->purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) &&
index 975b7158ac7a18dc1fcc9a65952fd76e357a0985..82ab4c0f3b49a9679d7037bbefad3997bfbda269 100644 (file)
@@ -948,9 +948,7 @@ int connection_ap_handshake_attach_circuit(connection_t *conn) {
         if(rend_client_send_introduction(introcirc, rendcirc) < 0) {
           return -1;
         }
-        assert(!rendcirc->timestamp_dirty);
         rendcirc->timestamp_dirty = time(NULL);
-        assert(!introcirc->timestamp_dirty);
         introcirc->timestamp_dirty = time(NULL);
         return 0;
       }
index 46fd04c049c564aa8e196ea7676811bf784c6e3f..1a1a33b000d62b752b0073235becd9803f07f3e9 100644 (file)
@@ -166,6 +166,7 @@ rend_client_introduction_acked(circuit_t *circ,
     /* Locate the rend circ which is waiting to hear about this ack,
      * and tell it.
      */
+    log_fn(LOG_INFO,"Received ack. Telling rend circ.");
     rendcirc = circuit_get_by_rend_query_and_purpose(
                circ->rend_query, CIRCUIT_PURPOSE_C_REND_READY);
     if(rendcirc) { /* remember the ack */