[tor-commits] [tor/master] Consider 301 as an error like 404

nickm at torproject.org nickm at torproject.org
Tue Oct 20 13:05:37 UTC 2020


commit 5248d08edeba7a952a788292db54638c1569ee1e
Author: Guinness <guinness at crans.org>
Date:   Sat Oct 17 12:12:05 2020 +0200

    Consider 301 as an error like 404
    
    Tor does not follow redirects when bootstraping so we encountered an
    error.
    
    Fixes #40053
---
 changes/ticket40053               | 5 +++++
 src/feature/dirclient/dirclient.c | 7 +++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/changes/ticket40053 b/changes/ticket40053
new file mode 100644
index 0000000000..0226f3ceef
--- /dev/null
+++ b/changes/ticket40053
@@ -0,0 +1,5 @@
+ o Minor features (logging):
+   - Consider 301 as an error like a 404 when processing the response to a
+     request for a group of server descriptors or an extrainfo documents.
+     Closes ticket 40053.
+
diff --git a/src/feature/dirclient/dirclient.c b/src/feature/dirclient/dirclient.c
index f088ef8283..22e6837edf 100644
--- a/src/feature/dirclient/dirclient.c
+++ b/src/feature/dirclient/dirclient.c
@@ -2505,9 +2505,12 @@ handle_response_fetch_desc(dir_connection_t *conn,
   }
   if (status_code != 200) {
     int dir_okay = status_code == 404 ||
-      (status_code == 400 && !strcmp(reason, "Servers unavailable."));
+      (status_code == 400 && !strcmp(reason, "Servers unavailable.")) ||
+       status_code == 301;
     /* 404 means that it didn't have them; no big deal.
-     * Older (pre-0.1.1.8) servers said 400 Servers unavailable instead. */
+     * Older (pre-0.1.1.8) servers said 400 Servers unavailable instead.
+     * 301 is considered as an error since Tor does not follow redirects,
+     * which means we failed to reach the server we wanted. */
     log_fn(dir_okay ? LOG_INFO : LOG_WARN, LD_DIR,
            "Received http status code %d (%s) from server %s "
            "while fetching \"/tor/server/%s\". I'll try again soon.",





More information about the tor-commits mailing list