|
@@ -2945,6 +2945,7 @@ fetch_bridge_descriptors(time_t now)
|
|
or_options_t *options = get_options();
|
|
or_options_t *options = get_options();
|
|
int num_bridge_auths = get_n_authorities(BRIDGE_AUTHORITY);
|
|
int num_bridge_auths = get_n_authorities(BRIDGE_AUTHORITY);
|
|
int ask_bridge_directly;
|
|
int ask_bridge_directly;
|
|
|
|
+ int can_use_bridge_authority;
|
|
|
|
|
|
if (!bridge_list)
|
|
if (!bridge_list)
|
|
return;
|
|
return;
|
|
@@ -2960,9 +2961,10 @@ fetch_bridge_descriptors(time_t now)
|
|
in.s_addr = htonl(bridge->addr);
|
|
in.s_addr = htonl(bridge->addr);
|
|
tor_inet_ntoa(&in, address_buf, sizeof(address_buf));
|
|
tor_inet_ntoa(&in, address_buf, sizeof(address_buf));
|
|
|
|
|
|
- ask_bridge_directly = tor_digest_is_zero(bridge->identity) ||
|
|
+ can_use_bridge_authority = !tor_digest_is_zero(bridge->identity) &&
|
|
- !options->UpdateBridgesFromAuthority ||
|
|
+ num_bridge_auths;
|
|
- !num_bridge_auths;
|
|
+ ask_bridge_directly = !can_use_bridge_authority ||
|
|
|
|
+ !options->UpdateBridgesFromAuthority;
|
|
log_debug(LD_DIR, "ask_bridge_directly=%d (%d, %d, %d)",
|
|
log_debug(LD_DIR, "ask_bridge_directly=%d (%d, %d, %d)",
|
|
ask_bridge_directly, tor_digest_is_zero(bridge->identity),
|
|
ask_bridge_directly, tor_digest_is_zero(bridge->identity),
|
|
!options->UpdateBridgesFromAuthority, !num_bridge_auths);
|
|
!options->UpdateBridgesFromAuthority, !num_bridge_auths);
|
|
@@ -2971,9 +2973,9 @@ fetch_bridge_descriptors(time_t now)
|
|
!fascist_firewall_allows_address_or(bridge->addr, bridge->port)) {
|
|
!fascist_firewall_allows_address_or(bridge->addr, bridge->port)) {
|
|
log_notice(LD_DIR, "Bridge at '%s:%d' isn't reachable by our "
|
|
log_notice(LD_DIR, "Bridge at '%s:%d' isn't reachable by our "
|
|
"firewall policy. %s.", address_buf, bridge->port,
|
|
"firewall policy. %s.", address_buf, bridge->port,
|
|
- num_bridge_auths ? "Asking bridge authority instead" :
|
|
+ can_use_bridge_authority ?
|
|
- "Skipping");
|
|
+ "Asking bridge authority instead" : "Skipping");
|
|
- if (num_bridge_auths)
|
|
+ if (can_use_bridge_authorit)
|
|
ask_bridge_directly = 0;
|
|
ask_bridge_directly = 0;
|
|
else
|
|
else
|
|
continue;
|
|
continue;
|