]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Disable default fallback directories when other directories are set
authorteor <teor2345@gmail.com>
Thu, 9 Apr 2015 06:37:33 +0000 (16:37 +1000)
committerteor <teor2345@gmail.com>
Wed, 22 Apr 2015 14:16:04 +0000 (00:16 +1000)
Only add the default fallback directories when the DirAuthorities,
AlternateDirAuthority, and FallbackDir directory config options
are set to their defaults.

The default fallback directory list is currently empty, this fix will
only change tor's behaviour when it has default fallback directories.

Fixes bug 15642; bugfix on 90f6071d8dc0 in 0.2.4.7-alpha. Patch by "teor".

changes/bug-15642-default-fallback-default-dirs [new file with mode: 0644]
src/or/config.c

diff --git a/changes/bug-15642-default-fallback-default-dirs b/changes/bug-15642-default-fallback-default-dirs
new file mode 100644 (file)
index 0000000..3864cf3
--- /dev/null
@@ -0,0 +1,8 @@
+  o Minor bugfixes (configuration):
+    - Only add the default fallback directories when the DirAuthorities,
+      AlternateDirAuthority, and FallbackDir directory config options
+      are set to their defaults.
+      The default fallback directory list is empty, this fix will only
+      change tor's behaviour when it has default fallback directories.
+      Fixes bug 15642; bugfix on 90f6071d8dc0 in 0.2.4.7-alpha.
+      Patch by "teor".
index d7444d52f6b73b71b271a775db80bd6410f78c03..d48d57f733dc663f50a88729760ac2a2badbb0dc 100644 (file)
@@ -985,17 +985,22 @@ consider_adding_dir_servers(const or_options_t *options,
   if (!options->DirAuthorities) {
     /* then we may want some of the defaults */
     dirinfo_type_t type = NO_DIRINFO;
-    if (!options->AlternateBridgeAuthority)
+    if (!options->AlternateBridgeAuthority) {
       type |= BRIDGE_DIRINFO;
-    if (!options->AlternateDirAuthority)
+    }
+    if (!options->AlternateDirAuthority) {
       type |= V3_DIRINFO | EXTRAINFO_DIRINFO | MICRODESC_DIRINFO;
+      /* Only add the default fallback directories when the DirAuthorities,
+       * AlternateDirAuthority, and FallbackDir directory config options
+       * are set to their defaults. */
+      if (!options->FallbackDir)
+        add_default_fallback_dir_servers();
+    }
     /* if type == NO_DIRINFO, we don't want to add any of the
      * default authorities, because we've replaced them all */
     if (type != NO_DIRINFO)
       add_default_trusted_dir_authorities(type);
   }
-  if (!options->FallbackDir)
-    add_default_fallback_dir_servers();
 
   for (cl = options->DirAuthorities; cl; cl = cl->next)
     if (parse_dir_authority_line(cl->value, NO_DIRINFO, 0)<0)