[tor-commits] [stem/master] Script for caching fallback directories

atagar at torproject.org atagar at torproject.org
Mon Feb 22 02:16:46 UTC 2016


commit 9e3f6a2930893bcf4cd69a7e18c00efb2480ff10
Author: Damian Johnson <atagar at torproject.org>
Date:   Sun Feb 21 18:19:16 2016 -0800

    Script for caching fallback directories
    
    Oops! Forgot to add a couple new files to support fallback directories.
---
 cache_fallback_directories.py            | 64 ++++++++++++++++++++++++
 stem/descriptor/fallback_directories.cfg | 86 ++++++++++++++++++++++++++++++++
 2 files changed, 150 insertions(+)

diff --git a/cache_fallback_directories.py b/cache_fallback_directories.py
new file mode 100755
index 0000000..d6a58a9
--- /dev/null
+++ b/cache_fallback_directories.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python
+# Copyright 2016, Damian Johnson and The Tor Project
+# See LICENSE for licensing information
+
+"""
+Caches tor's latest fallback directories.
+"""
+
+import re
+import sys
+
+import stem.descriptor.remote
+import stem.util.conf
+import stem.util.system
+
+try:
+  # account for urllib's change between python 2.x and 3.x
+  import urllib.request as urllib
+except ImportError:
+  import urllib2 as urllib
+
+GITWEB_MAN_LOG = 'https://gitweb.torproject.org/tor.git/log/src/or/fallback_dirs.inc'
+FALLBACK_DIR_LINK = "href='/tor.git/commit/src/or/fallback_dirs.inc\?id=([^']*)'"
+
+if __name__ == '__main__':
+  try:
+    fallback_dir_page = urllib.urlopen(GITWEB_MAN_LOG).read()
+    fallback_dir_commit = re.search(FALLBACK_DIR_LINK, fallback_dir_page).group(1)
+  except:
+    print("Unable to determine the latest commit to edit tor's fallback directories: %s" % sys.exc_info()[1])
+    sys.exit(1)
+
+  try:
+    stem_commit = stem.util.system.call('git rev-parse HEAD')[0]
+  except IOError as exc:
+    print("Unable to determine stem's current commit: %s" % exc)
+    sys.exit(1)
+
+  print('Latest tor commit editing fallback directories: %s' % fallback_dir_commit)
+  print('Current stem commit: %s' % stem_commit)
+  print('')
+
+  cached_fallback_directories = stem.descriptor.remote.FallbackDirectory.from_cache()
+  latest_fallback_directories = stem.descriptor.remote.FallbackDirectory.from_remote()
+
+  if cached_fallback_directories == latest_fallback_directories:
+    print('Fallback directories are already up to date, nothing to do.')
+    sys.exit(0)
+
+  print('Differences detected...\n')
+  print(stem.descriptor.remote._fallback_directory_differences(cached_fallback_directories, latest_fallback_directories))
+
+  conf = stem.util.conf.Config()
+  conf.set('tor_commit', fallback_dir_commit)
+  conf.set('stem_commit', stem_commit)
+
+  for directory in latest_fallback_directories.values():
+    nickname = directory.nickname
+    conf.set('%s.address' % nickname, directory.address)
+    conf.set('%s.or_port' % nickname, str(directory.or_port))
+    conf.set('%s.dir_port' % nickname, str(directory.dir_port))
+    conf.set('%s.fingerprint' % nickname, directory.fingerprint)
+
+  conf.save(stem.descriptor.remote.CACHE_PATH)
diff --git a/stem/descriptor/fallback_directories.cfg b/stem/descriptor/fallback_directories.cfg
new file mode 100644
index 0000000..158378d
--- /dev/null
+++ b/stem/descriptor/fallback_directories.cfg
@@ -0,0 +1,86 @@
+tor_commit ab3c86479a516073e0b445846a22b0e24ce8078e
+stem_commit 645017a5f8c17b143e90602fdfe6c03a1a994a1c
+Doedel22.address 178.254.44.135
+Doedel22.or_port 9001
+Doedel22.dir_port 9030
+Doedel22.fingerprint 8FA37B93397015B2BC5A525C908485260BE9F422
+tornoderdednl.address 178.62.199.226
+tornoderdednl.or_port 443
+tornoderdednl.dir_port 80
+tornoderdednl.fingerprint CBEFF7BA4A4062045133C053F2D70524D8BBE5BE
+Logforme.address 84.219.173.60
+Logforme.or_port 443
+Logforme.dir_port 9030
+Logforme.fingerprint 855BC2DABE24C861CD887DB9B2E950424B49FC34
+Doedel21.address 178.254.44.135
+Doedel21.or_port 443
+Doedel21.dir_port 80
+Doedel21.fingerprint AE6A8C18E7499B586CD36246AC4BCAFFBBF93AB2
+BabylonNetwork02.address 149.202.98.161
+BabylonNetwork02.or_port 443
+BabylonNetwork02.dir_port 80
+BabylonNetwork02.fingerprint 54660C671B47E6986B465B80444414BD19E5A34B
+fluxe3.address 78.47.18.110
+fluxe3.or_port 80
+fluxe3.dir_port 443
+fluxe3.fingerprint F8D27B163B9247B232A2EEE68DD8B698695C28DE
+kili.address 178.62.173.203
+kili.or_port 9001
+kili.dir_port 9030
+kili.fingerprint DD85503F2D1F52EF9EAD621E942298F46CD2FC10
+wagner.address 5.175.233.86
+wagner.or_port 443
+wagner.dir_port 80
+wagner.fingerprint 5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33
+fluxe4.address 131.188.40.188
+fluxe4.or_port 80
+fluxe4.dir_port 443
+fluxe4.fingerprint EBE718E1A49EE229071702964F8DB1F318075FF8
+kitten2.address 62.210.124.124
+kitten2.or_port 9101
+kitten2.dir_port 9130
+kitten2.fingerprint 2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E
+coby.address 51.255.33.237
+coby.or_port 9001
+coby.dir_port 9091
+coby.fingerprint A360C21FA87FFA2046D92C17086A6B47E5C68109
+GrmmlLitavis.address 5.39.88.19
+GrmmlLitavis.or_port 9001
+GrmmlLitavis.dir_port 9030
+GrmmlLitavis.fingerprint 7CB8C31432A796731EA7B6BF4025548DFEB25E0C
+Doedel24.address 178.254.20.134
+Doedel24.or_port 9001
+Doedel24.dir_port 9030
+Doedel24.fingerprint 2CE96A8A1DA032664C90F574AFFBECE18A6E8DFC
+BabylonNetwork03.address 193.111.136.162
+BabylonNetwork03.or_port 443
+BabylonNetwork03.dir_port 80
+BabylonNetwork03.fingerprint C79552275DFCD486B942510EF663ED36ACA1A84B
+Unnamed.address 217.12.199.208
+Unnamed.or_port 443
+Unnamed.dir_port 80
+Unnamed.fingerprint DF3AED4322B1824BF5539AE54B2D1B38E080FF05
+eriador.address 85.25.138.93
+eriador.or_port 4029
+eriador.dir_port 9030
+eriador.fingerprint 6DE61A6F72C1E5418A66BFED80DFB63E4C77668F
+Doedel26.address 178.254.20.134
+Doedel26.or_port 443
+Doedel26.dir_port 80
+Doedel26.fingerprint 9F5068310818ED7C70B0BC4087AB55CB12CB4377
+PedicaboMundi.address 144.76.14.145
+PedicaboMundi.or_port 143
+PedicaboMundi.dir_port 110
+PedicaboMundi.fingerprint 14419131033443AE6E21DA82B0D307F7CAE42BDB
+kitten1.address 62.210.124.124
+kitten1.or_port 9001
+kitten1.dir_port 9030
+kitten1.fingerprint 86E78DD3720C78DA8673182EF96C54B162CD660C
+Binnacle.address 108.53.208.157
+Binnacle.or_port 443
+Binnacle.dir_port 80
+Binnacle.fingerprint 4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2
+kitten4.address 212.47.237.95
+kitten4.or_port 9101
+kitten4.dir_port 9130
+kitten4.fingerprint 6FB38EB22E57EF7ED5EF00238F6A48E553735D88



More information about the tor-commits mailing list