Преглед на файлове

if a stream times out after 15s without a connected cell,
don't try that circuit again.


svn:r1239

Roger Dingledine преди 22 години
родител
ревизия
516ef41ac1
променени са 1 файла, в които са добавени 6 реда и са изтрити 1 реда
  1. 6 1
      src/or/connection_edge.c

+ 6 - 1
src/or/connection_edge.c

@@ -568,7 +568,12 @@ void connection_ap_expire_beginning(void) {
        */
       conn->state = AP_CONN_STATE_CIRCUIT_WAIT;
       circuit_detach_stream(circ, conn);
-      /* give it another 15 seconds to try */
+      /* kludge to make us not try this circuit again, yet to allow
+       * current streams on it to survive if they can: make it
+       * unattractive to use for new streams */
+      assert(circ->timestamp_dirty);
+      circ->timestamp_dirty -= options.NewCircuitPeriod;
+      /* give our stream another 15 seconds to try */
       conn->timestamp_lastread += 15;
       if(connection_ap_handshake_attach_circuit(conn)<0) {
         /* it will never work */