Explorar el Código

Merge remote-tracking branch 'public/bug3851'

Nick Mathewson hace 14 años
padre
commit
947012e153
Se han modificado 3 ficheros con 15 adiciones y 2 borrados
  1. 4 0
      changes/bug3851
  2. 7 2
      src/or/microdesc.c
  3. 4 0
      src/or/networkstatus.c

+ 4 - 0
changes/bug3851

@@ -0,0 +1,4 @@
+  o Minor bugfixes:
+    - Make 'FetchUselessDescriptors' cause all descriptor types and
+      all consensus types get fetched. Fixes bug 3851; bugfix on
+      0.2.3.1-alpha.

+ 7 - 2
src/or/microdesc.c

@@ -698,8 +698,9 @@ we_use_microdescriptors_for_circuits(const or_options_t *options)
   int ret = options->UseMicrodescriptors;
   if (ret == -1) {
     /* UseMicrodescriptors is "auto"; we need to decide: */
-    /* So we decide that we'll use microdescriptors iff we are not a server */
-    ret = ! server_mode(options);
+    /* So we decide that we'll use microdescriptors iff we are not a server,
+     * and we're not autofetching everything. */
+    ret = !server_mode(options) && !options->FetchUselessDescriptors;
   }
   return ret;
 }
@@ -710,6 +711,8 @@ we_fetch_microdescriptors(const or_options_t *options)
 {
   if (directory_caches_dir_info(options))
     return 1;
+  if (options->FetchUselessDescriptors)
+    return 1;
   return we_use_microdescriptors_for_circuits(options);
 }
 
@@ -719,6 +722,8 @@ we_fetch_router_descriptors(const or_options_t *options)
 {
   if (directory_caches_dir_info(options))
     return 1;
+  if (options->FetchUselessDescriptors)
+    return 1;
   return ! we_use_microdescriptors_for_circuits(options);
 }
 

+ 4 - 0
src/or/networkstatus.c

@@ -1187,6 +1187,10 @@ we_want_to_fetch_flavor(const or_options_t *options, int flavor)
      * it ourselves. */
     return 1;
   }
+  if (options->FetchUselessDescriptors) {
+    /* In order to get all descriptors, we need to fetch all consensuses. */
+    return 1;
+  }
   /* Otherwise, we want the flavor only if we want to use it to build
    * circuits. */
   return flavor == usable_consensus_flavor();