[tor-bugs] #11200 [Tor]: cached consensus inteferes with DisableNetwork=1

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Aug 5 20:27:36 UTC 2014


#11200: cached consensus inteferes with DisableNetwork=1
-------------------------+-------------------------------------------------
     Reporter:  mcs      |      Owner:
         Type:  defect   |     Status:  needs_review
     Priority:  major    |  Milestone:  Tor: 0.2.5.x-final
    Component:  Tor      |    Version:  Tor: 0.2.4.21
   Resolution:           |   Keywords:  tor-client, 024-backport,
Actual Points:           |  025-triaged, andrea-review-0254, tbb-tor-
       Points:           |  backported-3.6b2, TorBrowserTeam201408
                         |  Parent ID:
-------------------------+-------------------------------------------------

Comment (by arma):

 What would you think of a patch like this?
 {{{
 diff --git a/src/or/nodelist.c b/src/or/nodelist.c
 index 8f87081..998cd21 100644
 --- a/src/or/nodelist.c
 +++ b/src/or/nodelist.c
 @@ -1494,6 +1494,7 @@ update_router_have_minimum_dir_info(void)
  {
    time_t now = time(NULL);
    int res;
 +  static int disabled=0;
    const or_options_t *options = get_options();
    const networkstatus_t *consensus =
 networkstatus_get_reasonably_live_consensus(now,usable_consensus_flavor());
 @@ -1512,9 +1513,11 @@ update_router_have_minimum_dir_info(void)
    }

    if (should_delay_dir_fetches(get_options(), &delay_fetches_msg)) {
 -    log_notice(LD_DIR, "Delaying directory fetches: %s",
 delay_fetches_msg);
 +    if (!disabled)
 +      log_notice(LD_DIR, "Delaying directory fetches: %s",
 delay_fetches_msg);
      strlcpy(dir_info_status, delay_fetches_msg,
 sizeof(dir_info_status));
      res = 0;
 +    disabled = 1;
      goto done;
 +  } else {
 +    disabled = 0;
    }

 @@ -1566,6 +1569,7 @@ update_router_have_minimum_dir_info(void)
      control_event_client_status(LOG_NOTICE, "NOT_ENOUGH_DIR_INFO");
    }
    have_min_dir_info = res;
 -  need_to_update_have_min_dir_info = 0;
 +  if (!disabled)
 +    need_to_update_have_min_dir_info = 0;
  }
 }}}

 Basically we don't cache the answer if we're returning 0 because of
 should_delay_dir_fetches().

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/11200#comment:26>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list