[tor-commits] [stem/master] Don't use fallback directories when fetching descriptors
atagar at torproject.org
atagar at torproject.org
Mon Mar 7 21:05:13 UTC 2016
commit 758f632de2acc90bd0d7d1f1022624b723b288ae
Author: Damian Johnson <atagar at torproject.org>
Date: Sun Mar 6 17:13:15 2016 -0800
Don't use fallback directories when fetching descriptors
Bah. Added fallback directories into our default pool to lessen load on
dirauths, but they can't serve extrainfo descriptors...
https://trac.torproject.org/projects/tor/ticket/18489
This is usually fine for tor clients, but not for us.
---
docs/change_log.rst | 1 -
stem/descriptor/remote.py | 11 +++--------
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/docs/change_log.rst b/docs/change_log.rst
index 3ce6df2..26e9966 100644
--- a/docs/change_log.rst
+++ b/docs/change_log.rst
@@ -61,7 +61,6 @@ The following are only available within Stem's `git repository
* `Shorthand functions for stem.descriptor.remote <api/descriptor/remote.html#stem.descriptor.remote.get_instance>`_
* Added `fallback directory information <api/descriptor/remote.html#stem.descriptor.remote.FallbackDirectory>`_.
- * Lessened dirauth load of `stem.descriptor.remote <api/descriptor/remote.html>`_ by using fallback directories as well
* Support for ed25519 descriptor fields (:spec:`5a79d67`)
* Server descriptor validation fails with 'extra-info-digest line had an invalid value' from additions in proposal 228 (:trac:`16227`)
* :class:`~stem.descriptor.server_descriptor.BridgeDescriptor` now has 'ntor_onion_key' like its unsanitized counterparts
diff --git a/stem/descriptor/remote.py b/stem/descriptor/remote.py
index 2374071..09aba84 100644
--- a/stem/descriptor/remote.py
+++ b/stem/descriptor/remote.py
@@ -429,16 +429,11 @@ class Query(object):
:returns: **str** for the url being queried by this request
"""
- if use_authority:
+ if use_authority or not self.endpoints:
directories = get_authorities().values()
picked = random.choice(directories)
address, dirport = picked.address, picked.dir_port
- elif not self.endpoints:
- directories = get_authorities().values() + FallbackDirectory.from_cache().values()
-
- picked = random.choice(directories)
- address, dirport = picked.address, picked.dir_port
else:
address, dirport = random.choice(self.endpoints)
@@ -487,7 +482,7 @@ class DescriptorDownloader(object):
def __init__(self, use_mirrors = False, **default_args):
self._default_args = default_args
- directories = list(get_authorities().values()) + list(FallbackDirectory.from_cache().values())
+ directories = list(get_authorities().values())
self._endpoints = [(directory.address, directory.dir_port) for directory in directories]
if use_mirrors:
@@ -509,7 +504,7 @@ class DescriptorDownloader(object):
:raises: **Exception** if unable to determine the directory mirrors
"""
- directories = get_authorities().values() + FallbackDirectory.from_cache().values()
+ directories = get_authorities().values()
new_endpoints = set([(directory.address, directory.dir_port) for directory in directories])
consensus = list(self.get_consensus(document_handler = stem.descriptor.DocumentHandler.DOCUMENT).run())[0]
More information about the tor-commits
mailing list