Merge remote-tracking branch 'dgoulet/ticket33796_044_01' into maint-0.4.4

This commit is contained in:
Nick Mathewson 2020-07-09 09:59:45 -04:00
commit 8dd89e4330
4 changed files with 15 additions and 12 deletions

7
changes/ticket33796 Normal file
View File

@ -0,0 +1,7 @@
o Removed features (IPv6, revert):
- Revert the client port prefer IPv6 feature because it breaks the
torsocks use case. The SOCKS resolve command is lacking a mechanism to
ask for a specific address family (v4 or v6) thus prioritizing IPv6 when
an IPv4 address is asked on the resolve SOCKS interface resulting in a
failure. Tor Browser explicitly set PreferIPv6 so this should not affect
the majority of our users. Closes ticket 33796; bugfix on 0.4.4.1-alpha.

View File

@ -1492,16 +1492,14 @@ The following options are useful only for clients (that is, if
Other recognized __flags__ for a SocksPort are: Other recognized __flags__ for a SocksPort are:
**NoIPv4Traffic**;; **NoIPv4Traffic**;;
Tell exits to not connect to IPv4 addresses in response to SOCKS Tell exits to not connect to IPv4 addresses in response to SOCKS
requests on this connection. (Allowing IPv4 is the default.) requests on this connection.
**NoIPv6Traffic**;; **IPv6Traffic**;;
Tell exits to not connect to IPv6 addresses in response to SOCKS Tell exits to allow IPv6 addresses in response to SOCKS requests on
requests on this connection. This option is only relevant when SOCKS5 this connection, so long as SOCKS5 is in use. (SOCKS4 can't handle
is in use, because SOCKS4 can't handle IPv6. (Allowing IPv6 is the IPv6.)
default.) **PreferIPv6**;;
**NoPreferIPv6**;;
Tells exits that, if a host has both an IPv4 and an IPv6 address, Tells exits that, if a host has both an IPv4 and an IPv6 address,
we would prefer to connect to it via IPv4. (IPv6 is the default in we would prefer to connect to it via IPv6. (IPv4 is the default.)
recent versions of Tor.)
**NoDNSRequest**;; **NoDNSRequest**;;
Do not ask exits to resolve DNS addresses in SOCKS5 requests. Tor will Do not ask exits to resolve DNS addresses in SOCKS5 requests. Tor will
connect to IPv4 addresses, IPv6 addresses (if IPv6Traffic is set) and connect to IPv4 addresses, IPv6 addresses (if IPv6Traffic is set) and

View File

@ -5610,7 +5610,7 @@ port_cfg_new(size_t namelen)
/* entry_cfg flags */ /* entry_cfg flags */
cfg->entry_cfg.ipv4_traffic = 1; cfg->entry_cfg.ipv4_traffic = 1;
cfg->entry_cfg.ipv6_traffic = 1; cfg->entry_cfg.ipv6_traffic = 1;
cfg->entry_cfg.prefer_ipv6 = 1; cfg->entry_cfg.prefer_ipv6 = 0;
cfg->entry_cfg.dns_request = 1; cfg->entry_cfg.dns_request = 1;
cfg->entry_cfg.onion_traffic = 1; cfg->entry_cfg.onion_traffic = 1;
cfg->entry_cfg.prefer_ipv6_virtaddr = 1; cfg->entry_cfg.prefer_ipv6_virtaddr = 1;

View File

@ -4160,8 +4160,6 @@ test_config_parse_port_config__ports__ports_given(void *data)
/* Test entry port defaults as initialised in port_parse_config */ /* Test entry port defaults as initialised in port_parse_config */
tt_int_op(port_cfg->entry_cfg.dns_request, OP_EQ, 1); tt_int_op(port_cfg->entry_cfg.dns_request, OP_EQ, 1);
tt_int_op(port_cfg->entry_cfg.ipv4_traffic, OP_EQ, 1); tt_int_op(port_cfg->entry_cfg.ipv4_traffic, OP_EQ, 1);
tt_int_op(port_cfg->entry_cfg.ipv6_traffic, OP_EQ, 1);
tt_int_op(port_cfg->entry_cfg.prefer_ipv6, OP_EQ, 1);
tt_int_op(port_cfg->entry_cfg.onion_traffic, OP_EQ, 1); tt_int_op(port_cfg->entry_cfg.onion_traffic, OP_EQ, 1);
tt_int_op(port_cfg->entry_cfg.cache_ipv4_answers, OP_EQ, 0); tt_int_op(port_cfg->entry_cfg.cache_ipv4_answers, OP_EQ, 0);
tt_int_op(port_cfg->entry_cfg.prefer_ipv6_virtaddr, OP_EQ, 1); tt_int_op(port_cfg->entry_cfg.prefer_ipv6_virtaddr, OP_EQ, 1);