diff options
author | David Goulet <dgoulet@torproject.org> | 2020-07-21 07:57:21 -0400 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2020-07-21 08:18:31 -0400 |
commit | c3d113a464d4f2e994ae6d1c876875b542f90d5c (patch) | |
tree | 595579453519713c3c07682aa2c4482be052aa39 /src/app/config/resolve_addr.c | |
parent | f5d773c600e9902f053d03f47b7812bd1f4796b7 (diff) | |
download | tor-c3d113a464d4f2e994ae6d1c876875b542f90d5c.tar.gz tor-c3d113a464d4f2e994ae6d1c876875b542f90d5c.zip |
relay: Add AddressDisableIPv6 torrc option
This option controls if a tor relay will attempt address auto discovery and
thus ultimately publish an IPv6 ORPort in the descriptor.
Behavior is from proposal 312 section 3.2.6.
Closes #33245
Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'src/app/config/resolve_addr.c')
-rw-r--r-- | src/app/config/resolve_addr.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/app/config/resolve_addr.c b/src/app/config/resolve_addr.c index ba1c854d77..d23e39b62d 100644 --- a/src/app/config/resolve_addr.c +++ b/src/app/config/resolve_addr.c @@ -632,6 +632,13 @@ find_my_address(const or_options_t *options, int family, int warn_severity, if (method_out) *method_out = NULL; if (hostname_out) *hostname_out = NULL; + /* If an IPv6 is requested, check if IPv6 address discovery is disabled and + * if so we always return a failure. It is done here so we don't populate + * the resolve cache or do any DNS resolution. */ + if (family == AF_INET6 && options->AddressDisableIPv6) { + return false; + } + /* * Step 1: Discover address by attempting 3 different methods consecutively. */ |