mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
Build circuits more readily when DisableNetwork goes to 0
When Tor starts with DisabledNetwork set, it would correctly conclude that it shouldn't try making circuits, but it would mistakenly cache this conclusion and continue believing it even when DisableNetwork is set to 0. Fixes the bug introduced by the fix for bug 11200; bugfix on 0.2.5.4-alpha.
This commit is contained in:
parent
0c869af7f8
commit
fcac4b4467
7
changes/bug11200-caching
Normal file
7
changes/bug11200-caching
Normal file
@ -0,0 +1,7 @@
|
||||
o Major bugfixes:
|
||||
- When Tor starts with DisabledNetwork set, it would correctly
|
||||
conclude that it shouldn't try making circuits, but it would
|
||||
mistakenly cache this conclusion and continue believing it even
|
||||
when DisableNetwork is set to 0. Fixes the bug introduced by the
|
||||
fix for bug 11200; bugfix on 0.2.5.4-alpha.
|
||||
|
@ -1275,10 +1275,21 @@ static char dir_info_status[256] = "";
|
||||
int
|
||||
router_have_minimum_dir_info(void)
|
||||
{
|
||||
static int logged_delay=0;
|
||||
const char *delay_fetches_msg = NULL;
|
||||
if (should_delay_dir_fetches(get_options(), &delay_fetches_msg)) {
|
||||
if (!logged_delay)
|
||||
log_notice(LD_DIR, "Delaying directory fetches: %s", delay_fetches_msg);
|
||||
logged_delay=1;
|
||||
strlcpy(dir_info_status, delay_fetches_msg, sizeof(dir_info_status));
|
||||
return 0;
|
||||
}
|
||||
logged_delay = 0; /* reset it if we get this far */
|
||||
|
||||
if (PREDICT_UNLIKELY(need_to_update_have_min_dir_info)) {
|
||||
update_router_have_minimum_dir_info();
|
||||
need_to_update_have_min_dir_info = 0;
|
||||
}
|
||||
|
||||
return have_min_dir_info;
|
||||
}
|
||||
|
||||
@ -1498,7 +1509,6 @@ update_router_have_minimum_dir_info(void)
|
||||
const networkstatus_t *consensus =
|
||||
networkstatus_get_reasonably_live_consensus(now,usable_consensus_flavor());
|
||||
int using_md;
|
||||
const char *delay_fetches_msg = NULL;
|
||||
|
||||
if (!consensus) {
|
||||
if (!networkstatus_get_latest_consensus())
|
||||
@ -1511,13 +1521,6 @@ update_router_have_minimum_dir_info(void)
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (should_delay_dir_fetches(get_options(), &delay_fetches_msg)) {
|
||||
log_notice(LD_DIR, "Delaying directory fetches: %s", delay_fetches_msg);
|
||||
strlcpy(dir_info_status, delay_fetches_msg, sizeof(dir_info_status));
|
||||
res = 0;
|
||||
goto done;
|
||||
}
|
||||
|
||||
using_md = consensus->flavor == FLAV_MICRODESC;
|
||||
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user