Kaynağa Gözat

Fix logic error (people who ask authorities should never split; others should always split). Also, fix timing error in main.c so retries really happen.

svn:r5127
Nick Mathewson 19 yıl önce
ebeveyn
işleme
c345dab3bd
2 değiştirilmiş dosya ile 4 ekleme ve 2 silme
  1. 1 1
      src/or/main.c
  2. 3 1
      src/or/routerlist.c

+ 1 - 1
src/or/main.c

@@ -664,7 +664,7 @@ run_scheduled_events(time_t now)
 
   if (time_to_reset_descriptor_failures < now) {
     router_reset_descriptor_download_failures();
-    time_to_try_getting_descriptors = now + DESCRIPTOR_FAILURE_RESET_INTERVAL;
+    time_to_reset_descriptor_failures = now + DESCRIPTOR_FAILURE_RESET_INTERVAL;
   }
 
   /** 1b. Every MAX_SSL_KEY_LIFETIME seconds, we change our TLS context. */

+ 3 - 1
src/or/routerlist.c

@@ -2368,10 +2368,12 @@ router_list_downloadable(void)
       rs->should_download = 1;
       ++n_downloadable;
     } else {
+      /*
       char fp[HEX_DIGEST_LEN+1];
       base16_encode(fp, HEX_DIGEST_LEN+1, rs->status.identity_digest, DIGEST_LEN);
       log_fn(LOG_NOTICE, "Not yet ready to download %s (%d more seconds)", fp,
              (int)(rs->next_attempt_at-now));
+      */
       rs->should_download = 0;
     }
   });
@@ -2479,7 +2481,7 @@ update_router_descriptor_downloads(time_t now)
 #define MIN_REQUESTS 3
   smartlist_t *downloadable = NULL;
   int get_all = 0;
-  int always_split = server_mode(get_options()) && get_options()->DirPort;
+  int always_split = !server_mode(get_options()) || !get_options()->DirPort;
 
   if (!networkstatus_list || smartlist_len(networkstatus_list)<2)
     get_all = 1;