diff options
-rw-r--r-- | changes/6757 | 5 | ||||
-rw-r--r-- | src/or/nodelist.c | 19 |
2 files changed, 17 insertions, 7 deletions
diff --git a/changes/6757 b/changes/6757 new file mode 100644 index 0000000000..6b17f951d1 --- /dev/null +++ b/changes/6757 @@ -0,0 +1,5 @@ + o Minor bugfixes (client): + - Make clients running with IPv6 bridges connect over IPv6 again, + even without setting new config options ClientUseIPv6 and + ClientPreferIPv6ORPort. + Fixes bug 6757; bugfix on 0.2.4.1-alpha. diff --git a/src/or/nodelist.c b/src/or/nodelist.c index c357bc0474..421db8edc0 100644 --- a/src/or/nodelist.c +++ b/src/or/nodelist.c @@ -873,18 +873,23 @@ node_get_prim_orport(const node_t *node, tor_addr_port_t *ap_out) void node_get_pref_orport(const node_t *node, tor_addr_port_t *ap_out) { + const or_options_t *options = get_options(); tor_assert(ap_out); /* Cheap implementation of config option ClientUseIPv6 -- simply - don't prefer IPv6 when ClientUseIPv6 is not set. (See #4455 for - more on this subject.) Note that this filter is too strict since - we're hindering not only clients! Erring on the safe side - shouldn't be a problem though. XXX move this check to where - outgoing connections are made? -LN */ - if (get_options()->ClientUseIPv6 == 1 && node_ipv6_preferred(node)) + don't prefer IPv6 when ClientUseIPv6 is not set and we're not a + client running with bridges. See #4455 for more on this subject. + + Note that this filter is too strict since we're hindering not + only clients! Erring on the safe side shouldn't be a problem + though. XXX move this check to where outgoing connections are + made? -LN */ + if ((options->ClientUseIPv6 || options->UseBridges) && + node_ipv6_preferred(node)) { node_get_pref_ipv6_orport(node, ap_out); - else + } else { node_get_prim_orport(node, ap_out); + } } /** Copy the preferred IPv6 OR port (IP address and TCP port) for |