]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
r16041@catbus: nickm | 2007-10-22 13:02:14 -0400
authorNick Mathewson <nickm@torproject.org>
Mon, 22 Oct 2007 17:31:22 +0000 (17:31 +0000)
committerNick Mathewson <nickm@torproject.org>
Mon, 22 Oct 2007 17:31:22 +0000 (17:31 +0000)
 Reattempt certificate downloads immediately on failure, as appropriate.

svn:r12106

ChangeLog
doc/TODO
src/or/directory.c
src/or/networkstatus.c
src/or/or.h

index c9cf60590f3e662f35df82569c1737373226adff..57905cd01c2d4cfdc7ea7adcdee96ed8707a2f79 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index 59e44f84a79f80d91dbf4b6e7fd2dfce0dd2c2d6..17b2e1ea5716242c229c191dcb57ea0478745e1b 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -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.
index d5193556ca6fd532c2f9201632bb332787acb55d..a7015bb3198e9b15907734fbcef9799c96154ec3 100644 (file)
@@ -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
index 2735203dc5bd252fca2952103106f3cf6f3f9751..a9efd8d92e133f0a9601dda7389e8c55a219af1f 100644 (file)
@@ -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
index 5e7d582ebc747dbf6a2b1955ff955a66bc2984cf..677c30a3910f5734f6f5235f85382e208cfe0781 100644 (file)
@@ -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);