Explorar el Código

Directory authorities should only automatically download Extra Info
documents if they're v1, v2, or v3 authorities.


svn:r12898

Roger Dingledine hace 16 años
padre
commit
7b60d6c526
Se han modificado 4 ficheros con 8 adiciones y 3 borrados
  1. 2 0
      ChangeLog
  2. 1 1
      src/or/config.c
  3. 3 1
      src/or/or.h
  4. 2 1
      src/or/router.c

+ 2 - 0
ChangeLog

@@ -95,6 +95,8 @@ Changes in version 0.2.0.13-alpha - 2007-12-21
     - Only Tors that want to mirror the v2 directory info should
       create the "cached-status" directory in their datadir. All Tors
       used to create it. Bugfix on 0.1.2.x.
+    - Directory authorities should only automatically download Extra Info
+      documents if they're v1, v2, or v3 authorities.
 
   o Minor features:
     - On USR1, when dmalloc is in use, log the top 10 memory

+ 1 - 1
src/or/config.c

@@ -2785,7 +2785,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
                "UseEntryGuards. Disabling.");
       options->UseEntryGuards = 0;
     }
-    if (!options->DownloadExtraInfo) {
+    if (!options->DownloadExtraInfo && authdir_mode_any_main(options)) {
       log_info(LD_CONFIG, "Authoritative directories always try to download "
                "extra-info documents. Setting DownloadExtraInfo.");
       options->DownloadExtraInfo = 1;

+ 3 - 1
src/or/or.h

@@ -3732,11 +3732,13 @@ int authdir_mode(or_options_t *options);
 int authdir_mode_v1(or_options_t *options);
 int authdir_mode_v2(or_options_t *options);
 int authdir_mode_v3(or_options_t *options);
+int authdir_mode_any_main(or_options_t *options);
+int authdir_mode_any_nonhidserv(or_options_t *options);
 int authdir_mode_handles_descs(or_options_t *options, int purpose);
 int authdir_mode_publishes_statuses(or_options_t *options);
 int authdir_mode_tests_reachability(or_options_t *options);
 int authdir_mode_bridge(or_options_t *options);
-int authdir_mode_any_nonhidserv(or_options_t *options);
+
 int clique_mode(or_options_t *options);
 int server_mode(or_options_t *options);
 int advertised_server_mode(void);

+ 2 - 1
src/or/router.c

@@ -823,7 +823,8 @@ authdir_mode_v3(or_options_t *options)
 {
   return authdir_mode(options) && options->V3AuthoritativeDir != 0;
 }
-static int
+/** Return true iff we are a v1, v2, or v3 directory authority. */
+int
 authdir_mode_any_main(or_options_t *options)
 {
   return options->V1AuthoritativeDir ||