diff options
author | Nick Mathewson <nickm@torproject.org> | 2007-10-22 17:31:22 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2007-10-22 17:31:22 +0000 |
commit | 4bab46d5d797c9a2f88fbf5dfb9ea0d91d384ee7 (patch) | |
tree | e07ac54d2e4f4287254ae12d071533c4805518ac | |
parent | 25a68907a187eb4272ecd633051267176b5a87ae (diff) | |
download | tor-4bab46d5d797c9a2f88fbf5dfb9ea0d91d384ee7.tar tor-4bab46d5d797c9a2f88fbf5dfb9ea0d91d384ee7.tar.gz |
r16041@catbus: nickm | 2007-10-22 13:02:14 -0400
Reattempt certificate downloads immediately on failure, as appropriate.
svn:r12106
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | doc/TODO | 2 | ||||
-rw-r--r-- | src/or/directory.c | 2 | ||||
-rw-r--r-- | src/or/networkstatus.c | 7 | ||||
-rw-r--r-- | src/or/or.h | 1 |
5 files changed, 12 insertions, 1 deletions
@@ -33,6 +33,7 @@ Changes in version 0.2.0.9-alpha - 2007-10-?? - Allow certificates to include an address. - When we change our directory-cache settings, reschedule all voting and download operations. + - Reattempt certificate downloads immediately on failure, as appropriate. o Minor features (router descriptor cache): - If we find a cached-routers file that's been sitting around for more @@ -49,7 +49,7 @@ Things we'd like to do in 0.2.0.x: of their first test, and then never seeing use. - Before 0.2.0.9-alpha (for nickm) - - Retry cert downloads as appropriate + o Retry cert downloads as appropriate - Delay consensus download retry when there's a unverified consensus we're downloading the certs to check - But don't delay forever. diff --git a/src/or/directory.c b/src/or/directory.c index d5193556c..a7015bb31 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -592,6 +592,8 @@ connection_dir_download_cert_failed(dir_connection_t *conn, int status) tor_free(cp); }); smartlist_free(failed); + + update_certificate_downloads(time(NULL)); } /** Helper for directory_initiate_command_(router|trusted_dir): send the diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index 2735203dc..a9efd8d92 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -843,6 +843,13 @@ update_networkstatus_downloads(time_t now) if (dirserver_mode(options)) update_v2_networkstatus_cache_downloads(now); update_consensus_networkstatus_downloads(now); + update_certificate_downloads(now); +} + +/**DOCDOC */ +void +update_certificate_downloads(time_t now) +{ if (consensus_waiting_for_certs) authority_certs_fetch_missing(consensus_waiting_for_certs, now); else diff --git a/src/or/or.h b/src/or/or.h index 5e7d582eb..677c30a39 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -3106,6 +3106,7 @@ void networkstatus_consensus_download_failed(int status_code); void update_consensus_networkstatus_fetch_time(time_t now); int should_delay_dir_fetches(or_options_t *options); void update_networkstatus_downloads(time_t now); +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); |