瀏覽代碼

r16041@catbus: nickm | 2007-10-22 13:02:14 -0400
Reattempt certificate downloads immediately on failure, as appropriate.


svn:r12106

Nick Mathewson 18 年之前
父節點
當前提交
4bab46d5d7
共有 5 個文件被更改,包括 12 次插入1 次删除
  1. 1 0
      ChangeLog
  2. 1 1
      doc/TODO
  3. 2 0
      src/or/directory.c
  4. 7 0
      src/or/networkstatus.c
  5. 1 0
      src/or/or.h

+ 1 - 0
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

+ 1 - 1
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.

+ 2 - 0
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

+ 7 - 0
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

+ 1 - 0
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);