#24706: Add a script that creates fallback directory whitelist entries
---------------------------------------+-----------------------------------
Reporter: teor | Owner: teor
Type: enhancement | Status: needs_review
Priority: Medium | Milestone: Tor:
| 0.3.3.x-final
Component: Core Tor/Fallback Scripts | Version:
Severity: Normal | Resolution:
Keywords: | Actual Points: 0.3
Parent ID: #22271 | Points: 0.2
Reviewer: | Sponsor:
---------------------------------------+-----------------------------------
Comment (by atagar):
Thanks Tim. For other's reference
[https://github.com/teor2345/tor/commit/bfb49a here's the link].
Your generateFallbackDirLine.py looks good, but I'm unsure why you're
downloading the full consensus rather than just fetching this from the
server descriptor. Doing do does the same, is simpler, and runs far
faster.
Otherwise looks good to me!
{{{
#!/usr/bin/env python
# Generate a fallback directory whitelist/blacklist line for every
fingerprint
# passed as an argument.
#
# Usage:
# generateFallbackDirLine.py fingerprint ...
import sys
import urllib2
import stem.descriptor.remote
import stem.util.tor_tools
if len(sys.argv) <= 1:
print('Usage: %s fingerprint ...' % sys.argv[0])
sys.exit(1)
fingerprint = sys.argv[1]
if not stem.util.tor_tools.is_valid_fingerprint(fingerprint):
print("'%s' isn't a valid relay fingerprint" % fingerprint)
try:
desc =
stem.descriptor.remote.get_server_descriptors(fingerprint).run()[0]
except urllib2.HTTPError as exc:
if exc.code == 404:
print('# %s not found in current consensus' % fingerprint)
sys.exit(1)
else:
raise
if not desc.dir_port:
print("# %s needs a DirPort" % fingerprint)
else:
ipv6_addresses = [(address, port) for address, port, is_ipv6 in
desc.or_addresses if is_ipv6]
ipv6_field = ' ipv6=[%s]:%s' % ipv6_addresses[0] if ipv6_addresses else
''
print('%s:%s orport=%s id=%s%s # %s' % (desc.address, desc.dir_port,
desc.or_port, fingerprint, ipv6_field, desc.nickname))
}}}
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/24706#comment:5>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
[email protected]
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs