mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 10:12:15 +01:00
r15887@catbus: nickm | 2007-10-17 17:25:32 -0400
When a networkstatus consensus download fails, do not wait 60 seconds to decide whether to retry. (Also, log the time at which we'll try to replace the current networkstatus.) svn:r12005
This commit is contained in:
parent
088c1fac39
commit
54ac72f6b0
@ -38,6 +38,8 @@ Changes in version 0.2.0.9-alpha - 2007-10-??
|
||||
|
||||
o Minor bugfixes (v3 directory protocol)
|
||||
- Delete unverified-consensus when the real consensus is set.
|
||||
- Consider retrying a consensus networkstatus fetch immediately after one
|
||||
fails: don't wait 60 seconds to notice.
|
||||
|
||||
o Minor bugfixes (controller):
|
||||
- Don't reset trusted dir server list when we set a configuration option.
|
||||
|
@ -997,9 +997,6 @@ run_scheduled_events(time_t now)
|
||||
networkstatus_v2_list_clean(now);
|
||||
/* Remove dead routers. */
|
||||
routerlist_remove_old_routers();
|
||||
#if 0
|
||||
networkstatus_v2_list_update_recent(now);
|
||||
#endif
|
||||
|
||||
/* Also, once per minute, check whether we want to download any
|
||||
* networkstatus documents.
|
||||
|
@ -728,6 +728,8 @@ static void
|
||||
update_consensus_networkstatus_downloads(time_t now)
|
||||
{
|
||||
or_options_t *options = get_options();
|
||||
if (!networkstatus_get_live_consensus(now))
|
||||
time_to_download_next_consensus = now;
|
||||
if (time_to_download_next_consensus > now)
|
||||
return;
|
||||
if (authdir_mode_v3(options))
|
||||
@ -747,6 +749,8 @@ void
|
||||
networkstatus_consensus_download_failed(int status_code)
|
||||
{
|
||||
download_status_failed(&consensus_dl_status, status_code);
|
||||
/* Retry immediately, if appropriate. */
|
||||
update_consensus_networkstatus_downloads(time(NULL));
|
||||
}
|
||||
|
||||
/** DOCDOC */
|
||||
@ -755,8 +759,8 @@ update_consensus_networkstatus_fetch_time(time_t now)
|
||||
{
|
||||
or_options_t *options = get_options();
|
||||
/* XXXX020 call this when DirPort switches on or off. NMNM */
|
||||
if (current_consensus) {
|
||||
const networkstatus_vote_t *c = current_consensus;
|
||||
networkstatus_vote_t *c = networkstatus_get_live_consensus(now);
|
||||
if (c) {
|
||||
time_t start;
|
||||
long interval;
|
||||
if (dirserver_mode(options)) {
|
||||
@ -772,9 +776,16 @@ update_consensus_networkstatus_fetch_time(time_t now)
|
||||
interval = 1;
|
||||
tor_assert(start+interval < c->valid_until);
|
||||
time_to_download_next_consensus = start + crypto_rand_int(interval);
|
||||
{
|
||||
char tbuf[ISO_TIME_LEN+1];
|
||||
format_local_iso_time(tbuf, time_to_download_next_consensus);
|
||||
log_info(LD_DIR, "Have a live consensus; fetching next one at %s.",tbuf);
|
||||
}
|
||||
} else {
|
||||
time_to_download_next_consensus = now;
|
||||
log_info(LD_DIR, "No live consensus; we should fetch one immediately.");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** Return 1 if there's a reason we shouldn't try any directory
|
||||
|
Loading…
Reference in New Issue
Block a user