]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
tor-resolve: Added notice for .exit domains
authorPanagiotis Vasilopoulos <hello@alwayslivid.com>
Sun, 11 Apr 2021 17:21:31 +0000 (20:21 +0300)
committerPanagiotis Vasilopoulos <hello@alwayslivid.com>
Sun, 11 Apr 2021 17:24:41 +0000 (20:24 +0300)
Signed-off-by: Panagiotis Vasilopoulos <hello@alwayslivid.com>
src/tools/tor-resolve.c

index 09ff8df4abfb934cf3ba7294b013af9154f62310..ad52fdaa222ba43ca60f01d51d8ea7fc705b4984 100644 (file)
@@ -253,7 +253,7 @@ build_socks_resolve_request(uint8_t **out,
 }
 
 static void
-onion_warning(const char *hostname)
+onion_hs_warning(const char *hostname)
 {
   log_warn(LD_NET,
         "%s is a hidden service; those don't have IP addresses. "
@@ -264,6 +264,15 @@ onion_warning(const char *hostname)
            hostname);
 }
 
+static void
+onion_exit_warning(const char *hostname)
+{
+  log_warn(LD_NET,
+        "%s is a link pointing to an exit node; however, .exit domains"
+        "have been long defunct and are not valid anymore.",
+           hostname);
+}
+
 /** Given a <b>len</b>-byte SOCKS4a response in <b>response</b>, set
  * *<b>addr_out</b> to the address it contains (in host order).
  * Return 0 on success, -1 on error.
@@ -306,9 +315,15 @@ parse_socks4a_resolve_response(const char *hostname,
   if (status != 90) {
     log_warn(LD_NET,"Got status response '%d': socks request failed.", status);
     if (!strcasecmpend(hostname, ".onion")) {
-      onion_warning(hostname);
+      onion_hs_warning(hostname);
       result = -1; goto cleanup;
     }
+
+    if (!strcasecmpend(hostname, ".exit")) {
+      onion_exit_warning(hostname);
+      result = -1; goto cleanup;
+    }
+
     result = -1; goto cleanup;
   }
 
@@ -493,7 +508,11 @@ do_resolve(const char *hostname,
                (unsigned)reply_field,
                socks5_reason_to_string(reply_field));
       if (reply_field == 4 && !strcasecmpend(hostname, ".onion")) {
-        onion_warning(hostname);
+        onion_hs_warning(hostname);
+      }
+
+      if (reply_field == 4 && !strcasecmpend(hostname, ".exit")) {
+        onion_exit_warning(hostname);
       }
 
       socks5_server_reply_free(reply);