|
@@ -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;
|
|
|
|
|
|
{
|