]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
hs: v2 address are now considered a bad hostname
authorDavid Goulet <dgoulet@torproject.org>
Tue, 19 Oct 2021 14:43:54 +0000 (10:43 -0400)
committerDavid Goulet <dgoulet@torproject.org>
Tue, 19 Oct 2021 14:59:19 +0000 (10:59 -0400)
This means that at this commit, tor will stop logging that v2 is
deprecated and treat a v2 address as a bad hostname that we can't use.

Part of #40476

Signed-off-by: David Goulet <dgoulet@torproject.org>
changes/ticket40476
src/core/or/connection_edge.c
src/core/or/connection_edge.h

index 062e36f9bc5e13d490b0d62217dcba5f318cad8c..7179d8b1c6d769cd4ad70df18fedbf5db40d4dce 100644 (file)
@@ -1,8 +1,7 @@
-  o Major feature (onion service v2):
-    - Tor does NOT allow anymore to create v2 services, to connect as a client
-      to a v2 service and for a relay to be a v2 HSDir or introduction point.
-      This effectively disable onion service version 2 tor wide. Closes 40476.
-    - The control port command HSFETCH and HSPOST don't allow version 2 as well.
-      It is also not possible to create a v2 service with ADD_ONION.
+  o Minor feature (onion service v2):
+    - Onion service v2 address are now not recognized anymore by tor meaning a
+      bad hostname is returned when attempting to pass it on a SOCKS
+      connection. No more deprecation log is emitted client side. Closes
+      ticket 40476.
     - See https://blog.torproject.org/v2-deprecation-timeline for details on
       how to transition from v2 to v3.
index 40816dbe6656744f859bb74eceff9e6d22e56c55..ea4bf00735a364a120e54eb683f2c8fa3545f3bc 100644 (file)
@@ -2233,7 +2233,7 @@ connection_ap_handshake_rewrite_and_attach(entry_connection_t *conn,
   }
 
   /* Now, we handle everything that isn't a .onion address. */
-  if (addresstype != ONION_V3_HOSTNAME && addresstype != ONION_V2_HOSTNAME) {
+  if (addresstype != ONION_V3_HOSTNAME) {
     /* Not a hidden-service request.  It's either a hostname or an IP,
      * possibly with a .exit that we stripped off.  We're going to check
      * if we're allowed to connect/resolve there, and then launch the
@@ -2518,28 +2518,6 @@ connection_ap_handshake_rewrite_and_attach(entry_connection_t *conn,
     return 0;
   } else {
     /* If we get here, it's a request for a .onion address! */
-
-    /* We don't support v2 onions anymore. Log a warning and bail. */
-    if (addresstype == ONION_V2_HOSTNAME) {
-      static bool log_once = false;
-      if (!log_once) {
-        log_warn(LD_PROTOCOL, "Tried to connect to a v2 onion address, but "
-                 "this version of Tor no longer supports them. Please "
-                 "encourage the site operator to upgrade. For more "
-                 "information see "
-                 "https://blog.torproject.org/v2-deprecation-timeline.");
-        log_once = true;
-      }
-      control_event_client_status(LOG_WARN, "SOCKS_BAD_HOSTNAME HOSTNAME=%s",
-                                  escaped(socks->address));
-      /* Send back the 0xF6 extended code indicating a bad hostname. This is
-       * mostly so Tor Browser can make a proper UX with regards to v2
-       * addresses. */
-      conn->socks_request->socks_extended_error_code = SOCKS5_HS_BAD_ADDRESS;
-      connection_mark_unattached_ap(conn, END_STREAM_REASON_TORPROTOCOL);
-      return -1;
-    }
-
     tor_assert(addresstype == ONION_V3_HOSTNAME);
     tor_assert(!automap);
     return connection_ap_handle_onion(conn, socks, circ);
index 72869f348bd0fad67d0dc1396651691b4fbbfc7a..966a9391d89a212d532f1eedd4211511d5700fa4 100644 (file)
@@ -80,7 +80,6 @@ typedef enum hostname_type_t {
   BAD_HOSTNAME,
   EXIT_HOSTNAME,
   NORMAL_HOSTNAME,
-  ONION_V2_HOSTNAME,
   ONION_V3_HOSTNAME,
 } hostname_type_t;