mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 10:12:15 +01:00
r16115@catbus: nickm | 2007-10-24 21:52:33 -0400
Tolerate a slightly dead consensus when deciding whether to download descriptors and build circuits. svn:r12167
This commit is contained in:
parent
e0204f2119
commit
93331ebf69
@ -42,6 +42,9 @@ Changes in version 0.2.0.9-alpha - 2007-10-24
|
||||
consensus that we already have (or one that isn't valid) as a failure,
|
||||
and count failing to get the certificates after 20 minutes as a
|
||||
failure.
|
||||
- Build circuits and download descriptors even if our consensus is a
|
||||
little expired. (This feature will go away once authorities are more
|
||||
reliable.)
|
||||
|
||||
o Minor features (router descriptor cache):
|
||||
- If we find a cached-routers file that's been sitting around for more
|
||||
|
@ -1122,6 +1122,19 @@ networkstatus_get_live_consensus(time_t now)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* XXXX020 remove this in favor of get_live_consensus. */
|
||||
networkstatus_vote_t *
|
||||
networkstatus_get_reasonably_live_consensus(time_t now)
|
||||
{
|
||||
#define REASONABLY_LIVE_TIME (24*60*60)
|
||||
if (current_consensus &&
|
||||
current_consensus->valid_after <= now+REASONABLY_LIVE_TIME &&
|
||||
now <= current_consensus->valid_until)
|
||||
return current_consensus;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/** Copy all the ancillary information (like router download status and so on)
|
||||
* from <b>old_c</b> to <b>new_c</b>. */
|
||||
static void
|
||||
|
@ -3112,6 +3112,7 @@ void update_certificate_downloads(time_t now);
|
||||
networkstatus_v2_t *networkstatus_v2_get_by_digest(const char *digest);
|
||||
networkstatus_vote_t *networkstatus_get_latest_consensus(void);
|
||||
networkstatus_vote_t *networkstatus_get_live_consensus(time_t now);
|
||||
networkstatus_vote_t *networkstatus_get_reasonably_live_consensus(time_t now);
|
||||
int networkstatus_set_current_consensus(const char *consensus, int from_cache,
|
||||
int was_waiting_for_certs);
|
||||
void networkstatus_note_certs_arrived(void);
|
||||
|
@ -3685,7 +3685,8 @@ update_consensus_router_descriptor_downloads(time_t now)
|
||||
smartlist_t *downloadable = smartlist_create();
|
||||
int authdir = authdir_mode(options);
|
||||
int dirserver = dirserver_mode(options);
|
||||
networkstatus_vote_t *consensus = networkstatus_get_live_consensus(now);
|
||||
networkstatus_vote_t *consensus =
|
||||
networkstatus_get_reasonably_live_consensus(now);
|
||||
int n_delayed=0, n_have=0, n_would_reject=0, n_wouldnt_use=0,
|
||||
n_inprogress=0;
|
||||
|
||||
@ -3864,7 +3865,7 @@ update_router_have_minimum_dir_info(void)
|
||||
int res;
|
||||
or_options_t *options = get_options();
|
||||
const networkstatus_vote_t *consensus =
|
||||
networkstatus_get_live_consensus(now);
|
||||
networkstatus_get_reasonably_live_consensus(now);
|
||||
|
||||
if (!consensus) {
|
||||
res = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user