Procházet zdrojové kódy

Retry streams that ended with NOROUTE error

Also add the NOROUTE reason to control-spec.
Sebastian Hahn před 15 roky
rodič
revize
161b275028
2 změnil soubory, kde provedl 2 přidání a 1 odebrání
  1. 1 1
      doc/spec/control-spec.txt
  2. 1 0
      src/or/relay.c

+ 1 - 1
doc/spec/control-spec.txt

@@ -1029,7 +1029,7 @@ $Id$
 
       Reason = "MISC" / "RESOLVEFAILED" / "CONNECTREFUSED" /
                "EXITPOLICY" / "DESTROY" / "DONE" / "TIMEOUT" /
-               "HIBERNATING" / "INTERNAL"/ "RESOURCELIMIT" /
+               "NOROUTE" / "HIBERNATING" / "INTERNAL"/ "RESOURCELIMIT" /
                "CONNRESET" / "TORPROTOCOL" / "NOTDIRECTORY" / "END"
 
    The "REASON" field is provided only for FAILED, CLOSED, and DETACHED

+ 1 - 0
src/or/relay.c

@@ -743,6 +743,7 @@ connection_ap_process_end_not_open(
       case END_STREAM_REASON_RESOLVEFAILED:
       case END_STREAM_REASON_TIMEOUT:
       case END_STREAM_REASON_MISC:
+      case END_STREAM_REASON_NOROUTE:
         if (client_dns_incr_failures(conn->socks_request->address)
             < MAX_RESOLVE_FAILURES) {
           /* We haven't retried too many times; reattach the connection. */