[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [stem/master] Only use directory mirrors with a DirPort
commit 4d4d75fdc57de91ae6796341468811d061e82c9c
Author: Damian Johnson <atagar@xxxxxxxxxxxxxx>
Date: Sat Nov 10 16:58:37 2018 -0800
Only use directory mirrors with a DirPort
Oops! Iirc the V2Dir flag once was only granted to relays with a DirPort but
seems that's no longer the case. As a result our use_directory_mirrors() method
inserted endpoints with port values of 'None'...
https://trac.torproject.org/projects/tor/ticket/28393
Traceback (most recent call last):
File "bushel.py", line 21, in <module>
for desc in downloader.get_consensus().run():
...
File "/usr/lib/python3/dist-packages/stem/__init__.py", line 571, in __init__
raise ValueError("'%s' isn't a valid port" % port)
ValueError: 'None' isn't a valid port
We could use their ORPort to download descriptors instead, but Stem's ORPort
capabilities are still pretty immature so just gonna restrict ourselves to
DirPort mirrors for now instead.
---
docs/change_log.rst | 1 +
stem/descriptor/remote.py | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/change_log.rst b/docs/change_log.rst
index a06b2ae8..01f3f2a4 100644
--- a/docs/change_log.rst
+++ b/docs/change_log.rst
@@ -51,6 +51,7 @@ The following are only available within Stem's `git repository
* **Descriptors**
+ * DescriptorDownloader crashed if **use_mirrors** is set (:trac:`28393`)
* Don't download from Serge, a bridge authority that frequently timeout
* **Website**
diff --git a/stem/descriptor/remote.py b/stem/descriptor/remote.py
index f1171697..47af2232 100644
--- a/stem/descriptor/remote.py
+++ b/stem/descriptor/remote.py
@@ -580,7 +580,7 @@ class DescriptorDownloader(object):
consensus = list(self.get_consensus(document_handler = stem.descriptor.DocumentHandler.DOCUMENT).run())[0]
for desc in consensus.routers.values():
- if stem.Flag.V2DIR in desc.flags:
+ if stem.Flag.V2DIR in desc.flags and desc.dir_port:
new_endpoints.add((desc.address, desc.dir_port))
# we need our endpoints to be a list rather than set for random.choice()
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits