diff options
author | Panagiotis Vasilopoulos <hello@alwayslivid.com> | 2021-04-11 20:21:31 +0300 |
---|---|---|
committer | Panagiotis Vasilopoulos <hello@alwayslivid.com> | 2021-04-11 20:24:41 +0300 |
commit | 6028b2c10ca943a9b675feff10cae140a3d146d6 (patch) | |
tree | 94e482a2d14cc1b196668b1cc806ddbd9427d867 /src/tools | |
parent | 62614f0b3f6432d3e9f67869594c4e1d7984c147 (diff) | |
download | tor-6028b2c10ca943a9b675feff10cae140a3d146d6.tar.gz tor-6028b2c10ca943a9b675feff10cae140a3d146d6.zip |
tor-resolve: Added notice for .exit domains
Signed-off-by: Panagiotis Vasilopoulos <hello@alwayslivid.com>
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/tor-resolve.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/tools/tor-resolve.c b/src/tools/tor-resolve.c index 09ff8df4ab..ad52fdaa22 100644 --- a/src/tools/tor-resolve.c +++ b/src/tools/tor-resolve.c @@ -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); |