tor-commits
Threads by month
- ----- 2025 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
November 2016
- 16 participants
- 1665 discussions

02 Nov '16
commit 532f906755af6a1d9f281fde5def4e416146d0b2
Author: Damian Johnson <atagar(a)torproject.org>
Date: Wed Nov 2 10:46:26 2016 -0700
Support downloading microdescriptor consensus
Fantastic, turns out tor supports this!
https://trac.torproject.org/projects/tor/ticket/20501#comment:5
Adding a new get_consensus() arg for getting the microdescriptor consensus.
---
docs/change_log.rst | 1 +
stem/descriptor/remote.py | 45 ++++++++++++++++++++++++++---------------
test/integ/descriptor/remote.py | 17 ++++++++++++++++
3 files changed, 47 insertions(+), 16 deletions(-)
diff --git a/docs/change_log.rst b/docs/change_log.rst
index 2959f6b..0d8dcf2 100644
--- a/docs/change_log.rst
+++ b/docs/change_log.rst
@@ -68,6 +68,7 @@ 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>`_.
* Support for ed25519 descriptor fields (:spec:`5a79d67`)
+ * Support downloading microdescriptor consensus with :func:~stem.descriptor.remote.DescriptorDownloader.get_consensus` (:spec`e788b8f`)
* Added consensus and vote's new shared randomness attributes (:spec:`9949f64`)
* Added server descriptor's new allow_tunneled_dir_requests attribute (:spec:`8bc30d6`)
* Server descriptor validation fails with 'extra-info-digest line had an invalid value' from additions in proposal 228 (:trac:`16227`)
diff --git a/stem/descriptor/remote.py b/stem/descriptor/remote.py
index b47ee2b..4283616 100644
--- a/stem/descriptor/remote.py
+++ b/stem/descriptor/remote.py
@@ -160,7 +160,7 @@ def get_extrainfo_descriptors(fingerprints = None, **query_args):
return get_instance().get_extrainfo_descriptors(fingerprints, **query_args)
-def get_consensus(authority_v3ident = None, **query_args):
+def get_consensus(authority_v3ident = None, microdescriptor = False, **query_args):
"""
Shorthand for
:func:`~stem.descriptor.remote.DescriptorDownloader.get_consensus`
@@ -169,7 +169,7 @@ def get_consensus(authority_v3ident = None, **query_args):
.. versionadded:: 1.5.0
"""
- return get_instance().get_consensus(authority_v3ident, **query_args)
+ return get_instance().get_consensus(authority_v3ident, microdescriptor, **query_args)
def _guess_descriptor_type(resource):
@@ -182,6 +182,8 @@ def _guess_descriptor_type(resource):
return 'extra-info 1.0'
elif resource.startswith('/tor/micro/'):
return 'microdescriptor 1.0'
+ elif resource.startswith('/tor/status-vote/current/consensus-microdesc'):
+ return 'network-status-microdesc-consensus-3 1.0'
elif resource.startswith('/tor/status-vote/'):
return 'network-status-consensus-3 1.0'
elif resource.startswith('/tor/keys/'):
@@ -236,18 +238,19 @@ class Query(object):
<https://gitweb.torproject.org/torspec.git/tree/dir-spec.txt>`_).
Commonly useful ones include...
- ===================================== ===========
- Resource Description
- ===================================== ===========
- /tor/server/all.z all present server descriptors
- /tor/server/fp/<fp1>+<fp2>+<fp3>.z server descriptors with the given fingerprints
- /tor/extra/all.z all present extrainfo descriptors
- /tor/extra/fp/<fp1>+<fp2>+<fp3>.z extrainfo descriptors with the given fingerprints
- /tor/micro/d/<hash1>-<hash2>.z microdescriptors with the given hashes
- /tor/status-vote/current/consensus.z present consensus
- /tor/keys/all.z key certificates for the authorities
- /tor/keys/fp/<v3ident1>+<v3ident2>.z key certificates for specific authorities
- ===================================== ===========
+ =============================================== ===========
+ Resource Description
+ =============================================== ===========
+ /tor/server/all.z all present server descriptors
+ /tor/server/fp/<fp1>+<fp2>+<fp3>.z server descriptors with the given fingerprints
+ /tor/extra/all.z all present extrainfo descriptors
+ /tor/extra/fp/<fp1>+<fp2>+<fp3>.z extrainfo descriptors with the given fingerprints
+ /tor/micro/d/<hash1>-<hash2>.z microdescriptors with the given hashes
+ /tor/status-vote/current/consensus.z present consensus
+ /tor/status-vote/current/consensus-microdesc.z present microdescriptor consensus
+ /tor/keys/all.z key certificates for the authorities
+ /tor/keys/fp/<v3ident1>+<v3ident2>.z key certificates for specific authorities
+ =============================================== ===========
The '.z' suffix can be excluded to get a plaintext rather than compressed
response. Compression is handled transparently, so this shouldn't matter to
@@ -564,6 +567,8 @@ class DescriptorDownloader(object):
return self.query(resource, **query_args)
+ # TODO: drop in python 2.x
+
def get_microdescriptors(self, hashes, **query_args):
"""
Provides the microdescriptors with the given hashes. To get these see the
@@ -595,14 +600,19 @@ class DescriptorDownloader(object):
return self.query('/tor/micro/d/%s.z' % '-'.join(hashes), **query_args)
- def get_consensus(self, authority_v3ident = None, **query_args):
+ def get_consensus(self, authority_v3ident = None, microdescriptor = False, **query_args):
"""
Provides the present router status entries.
+ .. versionchanged:: 1.5.0
+ Added the microdescriptor argument.
+
:param str authority_v3ident: fingerprint of the authority key for which
to get the consensus, see `'v3ident' in tor's config.c
<https://gitweb.torproject.org/tor.git/tree/src/or/config.c#n819>`_
for the values.
+ :param bool microdescriptor: provides the microdescriptor consensus if
+ **True**, standard consensus otherwise
:param query_args: additional arguments for the
:class:`~stem.descriptor.remote.Query` constructor
@@ -610,7 +620,10 @@ class DescriptorDownloader(object):
entries
"""
- resource = '/tor/status-vote/current/consensus'
+ if microdescriptor:
+ resource = '/tor/status-vote/current/consensus-microdesc'
+ else:
+ resource = '/tor/status-vote/current/consensus'
if authority_v3ident:
resource += '/%s' % authority_v3ident
diff --git a/test/integ/descriptor/remote.py b/test/integ/descriptor/remote.py
index 52d29f0..098041d 100644
--- a/test/integ/descriptor/remote.py
+++ b/test/integ/descriptor/remote.py
@@ -184,6 +184,23 @@ class TestDescriptorDownloader(unittest.TestCase):
@require_online
@only_run_once
+ def test_get_consensus_for_microdescriptors(self):
+ """
+ Exercises the downloader's get_consensus() method for fetching a
+ microdescriptor consensus.
+ """
+
+ downloader = stem.descriptor.remote.DescriptorDownloader(validate = True)
+
+ consensus_query = downloader.get_consensus(microdescriptor = True)
+ consensus_query.run()
+
+ consensus = list(consensus_query)
+ self.assertTrue(len(consensus) > 50)
+ self.assertTrue(isinstance(consensus[0], stem.descriptor.router_status_entry.RouterStatusEntryMicroV3))
+
+ @require_online
+ @only_run_once
def test_get_key_certificates(self):
"""
Exercises the downloader's get_key_certificates() method.
1
0
commit 3fc8c854b9ec29fe4f6c05a2dfc1678570d8c746
Author: Damian Johnson <atagar(a)torproject.org>
Date: Mon Oct 31 19:37:26 2016 -0700
Sort fallbacks by fingerprint
Updating our fallback directories caused a big delta, not because of the
changes but because we have a random ordering. Sorting our config file by the
fallback fingerprints so we have small deltas in the future.
Only functional change to the config file is the following to get us in sync...
* Removed FCB6695F8F2DC240E974510A4B3A0F2B12AB5B64 as a fallback directory
* Removed 14419131033443AE6E21DA82B0D307F7CAE42BDB as a fallback directory
* Removed 5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33 as a fallback directory
* Removed 29F1020B94BE25E6BE1AD13E93CE19D2131B487C as a fallback directory
* Removed E781F4EC69671B3F1864AE2753E0890351506329 as a fallback directory
* Removed DE134FC8E5CC4EC8A5DE66934E70AC9D70267197 as a fallback directory
* Removed 6A640018EABF3DA9BAD9321AA37C2C87BBE1F907 as a fallback directory
* Removed 6FC6F08270D565BE89B7C819DD8E2D487397C073 as a fallback directory
---
cache_fallback_directories.py | 2 +-
stem/descriptor/fallback_directories.cfg | 502 +++++++++++++++----------------
test/unit/descriptor/remote.py | 2 +-
3 files changed, 239 insertions(+), 267 deletions(-)
diff --git a/cache_fallback_directories.py b/cache_fallback_directories.py
index cd613e4..79f21eb 100755
--- a/cache_fallback_directories.py
+++ b/cache_fallback_directories.py
@@ -54,7 +54,7 @@ if __name__ == '__main__':
conf.set('tor_commit', fallback_dir_commit)
conf.set('stem_commit', stem_commit)
- for directory in latest_fallback_directories.values():
+ for directory in sorted(latest_fallback_directories.values(), lambda x, y: cmp(x.fingerprint, y.fingerprint)):
fingerprint = directory.fingerprint
conf.set('%s.address' % fingerprint, directory.address)
conf.set('%s.or_port' % fingerprint, str(directory.or_port))
diff --git a/stem/descriptor/fallback_directories.cfg b/stem/descriptor/fallback_directories.cfg
index 94d9fcb..af2ff70 100644
--- a/stem/descriptor/fallback_directories.cfg
+++ b/stem/descriptor/fallback_directories.cfg
@@ -1,117 +1,234 @@
-tor_commit 1c4a2dd208601aca9fdd004929c283b9d44d7442
-stem_commit 3d0e999f8073bed67d84bb863560078e923a8b57
-823AA81E277F366505545522CEDC2F529CE4DC3F.address 192.160.102.164
-823AA81E277F366505545522CEDC2F529CE4DC3F.or_port 9001
-823AA81E277F366505545522CEDC2F529CE4DC3F.dir_port 80
-AEA43CB1E47BE5F8051711B2BF01683DB1568E05.address 37.187.7.74
-AEA43CB1E47BE5F8051711B2BF01683DB1568E05.or_port 443
-AEA43CB1E47BE5F8051711B2BF01683DB1568E05.dir_port 80
-AEA43CB1E47BE5F8051711B2BF01683DB1568E05.orport6_address 2001:41d0:a:74a::1
-AEA43CB1E47BE5F8051711B2BF01683DB1568E05.orport6_port 443
-8664DC892540F3C789DB37008236C096C871734D.address 163.172.138.22
-8664DC892540F3C789DB37008236C096C871734D.or_port 443
-8664DC892540F3C789DB37008236C096C871734D.dir_port 80
+tor_commit 30275b048f1c541b99c13808915f49671196fc7f
+stem_commit 3c3fc11c6bb0ef7bcc3ebd12f2a055b0950dcfac
+01A9258A46E97FF8B2CAC7910577862C14F2C524.address 193.171.202.146
+01A9258A46E97FF8B2CAC7910577862C14F2C524.or_port 9001
+01A9258A46E97FF8B2CAC7910577862C14F2C524.dir_port 9030
+0756B7CD4DFC8182BE23143FAC0642F515182CEB.address 5.9.110.236
+0756B7CD4DFC8182BE23143FAC0642F515182CEB.or_port 9001
+0756B7CD4DFC8182BE23143FAC0642F515182CEB.dir_port 9030
+0756B7CD4DFC8182BE23143FAC0642F515182CEB.orport6_address 2a01:4f8:162:51e2::2
+0756B7CD4DFC8182BE23143FAC0642F515182CEB.orport6_port 9001
+0BEA4A88D069753218EAAAD6D22EA87B9A1319D6.address 5.39.92.199
+0BEA4A88D069753218EAAAD6D22EA87B9A1319D6.or_port 443
+0BEA4A88D069753218EAAAD6D22EA87B9A1319D6.dir_port 80
+0C2C599AFCB26F5CFC2C7592435924C1D63D9484.address 5.196.88.122
+0C2C599AFCB26F5CFC2C7592435924C1D63D9484.or_port 9001
+0C2C599AFCB26F5CFC2C7592435924C1D63D9484.dir_port 9030
+0D3EBA17E1C78F1E9900BABDB23861D46FCAF163.address 178.62.197.82
+0D3EBA17E1C78F1E9900BABDB23861D46FCAF163.or_port 443
+0D3EBA17E1C78F1E9900BABDB23861D46FCAF163.dir_port 80
+17898F9A2EBC7D69DAF87C00A1BD2FABF3C9E1D2.address 178.32.216.146
+17898F9A2EBC7D69DAF87C00A1BD2FABF3C9E1D2.or_port 9001
+17898F9A2EBC7D69DAF87C00A1BD2FABF3C9E1D2.dir_port 9030
+1DBAED235E3957DE1ABD25B4206BE71406FB61F8.address 46.101.151.222
+1DBAED235E3957DE1ABD25B4206BE71406FB61F8.or_port 443
+1DBAED235E3957DE1ABD25B4206BE71406FB61F8.dir_port 80
+1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7.address 91.219.237.229
+1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7.or_port 443
+1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7.dir_port 80
+20462CBA5DA4C2D963567D17D0B7249718114A68.address 212.47.229.2
+20462CBA5DA4C2D963567D17D0B7249718114A68.or_port 9001
+20462CBA5DA4C2D963567D17D0B7249718114A68.dir_port 9030
+2541759BEC04D37811C2209A88E863320271EC9C.address 185.61.138.18
+2541759BEC04D37811C2209A88E863320271EC9C.or_port 4443
+2541759BEC04D37811C2209A88E863320271EC9C.dir_port 8080
+2BA2C8E96B2590E1072AECE2BDB5C48921BF8510.address 144.76.26.175
+2BA2C8E96B2590E1072AECE2BDB5C48921BF8510.or_port 9011
+2BA2C8E96B2590E1072AECE2BDB5C48921BF8510.dir_port 9012
+2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E.address 62.210.124.124
+2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E.or_port 9101
+2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E.dir_port 9130
+2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E.orport6_address 2001:bc8:3f23:100::1
+2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E.orport6_port 9101
+30648BC64CEDB3020F4A405E4AB2A6347FB8FA22.address 213.61.66.118
+30648BC64CEDB3020F4A405E4AB2A6347FB8FA22.or_port 9001
+30648BC64CEDB3020F4A405E4AB2A6347FB8FA22.dir_port 9031
+322C6E3A973BC10FC36DE3037AD27BC89F14723B.address 212.83.154.33
+322C6E3A973BC10FC36DE3037AD27BC89F14723B.or_port 8443
+322C6E3A973BC10FC36DE3037AD27BC89F14723B.dir_port 8080
+32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.address 109.105.109.162
+32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.or_port 60784
+32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.dir_port 52860
+32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.orport6_address 2001:948:7:2::163
+32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.orport6_port 5001
+35E8B344F661F4F2E68B17648F35798B44672D7E.address 146.0.32.144
+35E8B344F661F4F2E68B17648F35798B44672D7E.or_port 9001
+35E8B344F661F4F2E68B17648F35798B44672D7E.dir_port 9030
+361D33C96D0F161275EE67E2C91EE10B276E778B.address 217.79.190.25
+361D33C96D0F161275EE67E2C91EE10B276E778B.or_port 9090
+361D33C96D0F161275EE67E2C91EE10B276E778B.dir_port 9030
387B065A38E4DAA16D9D41C2964ECBC4B31D30FF.address 62.210.92.11
387B065A38E4DAA16D9D41C2964ECBC4B31D30FF.or_port 9101
387B065A38E4DAA16D9D41C2964ECBC4B31D30FF.dir_port 9130
387B065A38E4DAA16D9D41C2964ECBC4B31D30FF.orport6_address 2001:bc8:338c::1
387B065A38E4DAA16D9D41C2964ECBC4B31D30FF.orport6_port 9101
-DE134FC8E5CC4EC8A5DE66934E70AC9D70267197.address 195.191.233.221
-DE134FC8E5CC4EC8A5DE66934E70AC9D70267197.or_port 443
-DE134FC8E5CC4EC8A5DE66934E70AC9D70267197.dir_port 80
-5714542DCBEE1DD9864824723638FD44B2122CEA.address 109.163.234.9
-5714542DCBEE1DD9864824723638FD44B2122CEA.or_port 443
-5714542DCBEE1DD9864824723638FD44B2122CEA.dir_port 80
+39F096961ED2576975C866D450373A9913AFDC92.address 198.50.191.95
+39F096961ED2576975C866D450373A9913AFDC92.or_port 443
+39F096961ED2576975C866D450373A9913AFDC92.dir_port 80
+3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B.address 164.132.77.175
+3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B.or_port 9001
+3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B.dir_port 9030
+3D7E274A87D9A89AF064C13D1EE4CA1F184F2600.address 176.10.107.180
+3D7E274A87D9A89AF064C13D1EE4CA1F184F2600.or_port 9001
+3D7E274A87D9A89AF064C13D1EE4CA1F184F2600.dir_port 9030
+489D94333DF66D57FFE34D9D59CC2D97E2CB0053.address 37.187.102.186
+489D94333DF66D57FFE34D9D59CC2D97E2CB0053.or_port 9001
+489D94333DF66D57FFE34D9D59CC2D97E2CB0053.dir_port 9030
+489D94333DF66D57FFE34D9D59CC2D97E2CB0053.orport6_address 2001:41d0:a:26ba::1
+489D94333DF66D57FFE34D9D59CC2D97E2CB0053.orport6_port 9001
+49E7AD01BB96F6FE3AB8C3B15BD2470B150354DF.address 188.165.194.195
+49E7AD01BB96F6FE3AB8C3B15BD2470B150354DF.or_port 9001
+49E7AD01BB96F6FE3AB8C3B15BD2470B150354DF.dir_port 9030
+4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.address 108.53.208.157
+4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.or_port 443
+4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.dir_port 80
50586E25BE067FD1F739998550EDDCB1A14CA5B2.address 212.51.134.123
50586E25BE067FD1F739998550EDDCB1A14CA5B2.or_port 9001
50586E25BE067FD1F739998550EDDCB1A14CA5B2.dir_port 9030
50586E25BE067FD1F739998550EDDCB1A14CA5B2.orport6_address 2a02:168:6e00:0:3a60:77ff:fe9c:8bd1
50586E25BE067FD1F739998550EDDCB1A14CA5B2.orport6_port 9001
-BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.address 198.96.155.3
-BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.or_port 5001
-BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.dir_port 8080
-F65E0196C94DFFF48AFBF2F5F9E3E19AAE583FD0.address 94.242.246.23
-F65E0196C94DFFF48AFBF2F5F9E3E19AAE583FD0.or_port 9001
-F65E0196C94DFFF48AFBF2F5F9E3E19AAE583FD0.dir_port 443
-F65E0196C94DFFF48AFBF2F5F9E3E19AAE583FD0.orport6_address 2a01:608:ffff:ff07::1:23
-F65E0196C94DFFF48AFBF2F5F9E3E19AAE583FD0.orport6_port 9003
-616081EC829593AF4232550DE6FFAA1D75B37A90.address 95.128.43.164
-616081EC829593AF4232550DE6FFAA1D75B37A90.or_port 443
-616081EC829593AF4232550DE6FFAA1D75B37A90.dir_port 80
-616081EC829593AF4232550DE6FFAA1D75B37A90.orport6_address 2a02:ec0:209:10::4
-616081EC829593AF4232550DE6FFAA1D75B37A90.orport6_port 443
+5665A3904C89E22E971305EE8C1997BCA4123C69.address 94.23.204.175
+5665A3904C89E22E971305EE8C1997BCA4123C69.or_port 9001
+5665A3904C89E22E971305EE8C1997BCA4123C69.dir_port 9030
+5714542DCBEE1DD9864824723638FD44B2122CEA.address 109.163.234.9
+5714542DCBEE1DD9864824723638FD44B2122CEA.or_port 443
+5714542DCBEE1DD9864824723638FD44B2122CEA.dir_port 80
58ED9C9C35E433EE58764D62892B4FFD518A3CD0.address 185.21.100.50
58ED9C9C35E433EE58764D62892B4FFD518A3CD0.or_port 9001
58ED9C9C35E433EE58764D62892B4FFD518A3CD0.dir_port 9030
58ED9C9C35E433EE58764D62892B4FFD518A3CD0.orport6_address 2a00:1158:2:cd00:0:74:6f:72
58ED9C9C35E433EE58764D62892B4FFD518A3CD0.orport6_port 443
-35E8B344F661F4F2E68B17648F35798B44672D7E.address 146.0.32.144
-35E8B344F661F4F2E68B17648F35798B44672D7E.or_port 9001
-35E8B344F661F4F2E68B17648F35798B44672D7E.dir_port 9030
-14419131033443AE6E21DA82B0D307F7CAE42BDB.address 144.76.14.145
-14419131033443AE6E21DA82B0D307F7CAE42BDB.or_port 143
-14419131033443AE6E21DA82B0D307F7CAE42BDB.dir_port 110
-14419131033443AE6E21DA82B0D307F7CAE42BDB.orport6_address 2a01:4f8:190:9490::dead
-14419131033443AE6E21DA82B0D307F7CAE42BDB.orport6_port 443
+5A5E03355C1908EBF424CAF1F3ED70782C0D2F74.address 78.142.142.246
+5A5E03355C1908EBF424CAF1F3ED70782C0D2F74.or_port 443
+5A5E03355C1908EBF424CAF1F3ED70782C0D2F74.dir_port 80
+5CF8AFA5E4B0BB88942A44A3F3AAE08C3BDFD60B.address 178.16.208.62
+5CF8AFA5E4B0BB88942A44A3F3AAE08C3BDFD60B.or_port 443
+5CF8AFA5E4B0BB88942A44A3F3AAE08C3BDFD60B.dir_port 80
+5CF8AFA5E4B0BB88942A44A3F3AAE08C3BDFD60B.orport6_address 2a00:1c20:4089:1234:a6a4:2926:d0af:dfee
+5CF8AFA5E4B0BB88942A44A3F3AAE08C3BDFD60B.orport6_port 443
+616081EC829593AF4232550DE6FFAA1D75B37A90.address 95.128.43.164
+616081EC829593AF4232550DE6FFAA1D75B37A90.or_port 443
+616081EC829593AF4232550DE6FFAA1D75B37A90.dir_port 80
+616081EC829593AF4232550DE6FFAA1D75B37A90.orport6_address 2a02:ec0:209:10::4
+616081EC829593AF4232550DE6FFAA1D75B37A90.orport6_port 443
+64186650FFE4469EBBE52B644AE543864D32F43C.address 89.187.142.208
+64186650FFE4469EBBE52B644AE543864D32F43C.or_port 443
+64186650FFE4469EBBE52B644AE543864D32F43C.dir_port 80
+7350AB9ED7568F22745198359373C04AC783C37C.address 176.31.191.26
+7350AB9ED7568F22745198359373C04AC783C37C.or_port 9001
+7350AB9ED7568F22745198359373C04AC783C37C.dir_port 9030
+75F1992FD3F403E9C082A5815EB5D12934CDF46C.address 46.101.237.246
+75F1992FD3F403E9C082A5815EB5D12934CDF46C.or_port 9001
+75F1992FD3F403E9C082A5815EB5D12934CDF46C.dir_port 9030
+75F1992FD3F403E9C082A5815EB5D12934CDF46C.orport6_address 2a03:b0c0:3:d0::208:5001
+75F1992FD3F403E9C082A5815EB5D12934CDF46C.orport6_port 9050
+794D8EA8343A4E820320265D05D4FA83AB6D1778.address 185.11.180.67
+794D8EA8343A4E820320265D05D4FA83AB6D1778.or_port 9001
+794D8EA8343A4E820320265D05D4FA83AB6D1778.dir_port 80
79E169B25E4C7CE99584F6ED06F379478F23E2B8.address 62.210.129.246
79E169B25E4C7CE99584F6ED06F379478F23E2B8.or_port 443
79E169B25E4C7CE99584F6ED06F379478F23E2B8.dir_port 80
-FD1871854BFC06D7B02F10742073069F0528B5CC.address 192.187.124.98
-FD1871854BFC06D7B02F10742073069F0528B5CC.or_port 9001
-FD1871854BFC06D7B02F10742073069F0528B5CC.dir_port 9030
-EBE718E1A49EE229071702964F8DB1F318075FF8.address 131.188.40.188
-EBE718E1A49EE229071702964F8DB1F318075FF8.or_port 80
-EBE718E1A49EE229071702964F8DB1F318075FF8.dir_port 443
-489D94333DF66D57FFE34D9D59CC2D97E2CB0053.address 37.187.102.186
-489D94333DF66D57FFE34D9D59CC2D97E2CB0053.or_port 9001
-489D94333DF66D57FFE34D9D59CC2D97E2CB0053.dir_port 9030
-489D94333DF66D57FFE34D9D59CC2D97E2CB0053.orport6_address 2001:41d0:a:26ba::1
-489D94333DF66D57FFE34D9D59CC2D97E2CB0053.orport6_port 9001
+7A32C9519D80CA458FC8B034A28F5F6815649A98.address 82.223.21.74
+7A32C9519D80CA458FC8B034A28F5F6815649A98.or_port 9001
+7A32C9519D80CA458FC8B034A28F5F6815649A98.dir_port 9030
+7A32C9519D80CA458FC8B034A28F5F6815649A98.orport6_address 2001:470:53e0::cafe
+7A32C9519D80CA458FC8B034A28F5F6815649A98.orport6_port 9050
+823AA81E277F366505545522CEDC2F529CE4DC3F.address 192.160.102.164
+823AA81E277F366505545522CEDC2F529CE4DC3F.or_port 9001
+823AA81E277F366505545522CEDC2F529CE4DC3F.dir_port 80
+844AE9CAD04325E955E2BE1521563B79FE7094B7.address 192.87.28.82
+844AE9CAD04325E955E2BE1521563B79FE7094B7.or_port 9001
+844AE9CAD04325E955E2BE1521563B79FE7094B7.dir_port 9030
+8664DC892540F3C789DB37008236C096C871734D.address 163.172.138.22
+8664DC892540F3C789DB37008236C096C871734D.or_port 443
+8664DC892540F3C789DB37008236C096C871734D.dir_port 80
+8844D87E9B038BE3270938F05AF797E1D3C74C0F.address 93.180.156.84
+8844D87E9B038BE3270938F05AF797E1D3C74C0F.or_port 9001
+8844D87E9B038BE3270938F05AF797E1D3C74C0F.dir_port 9030
+9007C1D8E4F03D506A4A011B907A9E8D04E3C605.address 151.80.42.103
+9007C1D8E4F03D506A4A011B907A9E8D04E3C605.or_port 9001
+9007C1D8E4F03D506A4A011B907A9E8D04E3C605.dir_port 9030
+9007C1D8E4F03D506A4A011B907A9E8D04E3C605.orport6_address 2001:41d0:e:f67::114
+9007C1D8E4F03D506A4A011B907A9E8D04E3C605.orport6_port 9001
+9030DCF419F6E2FBF84F63CBACBA0097B06F557E.address 5.79.68.161
+9030DCF419F6E2FBF84F63CBACBA0097B06F557E.or_port 443
+9030DCF419F6E2FBF84F63CBACBA0097B06F557E.dir_port 81
+9030DCF419F6E2FBF84F63CBACBA0097B06F557E.orport6_address 2001:1af8:4700:a012:1::1
+9030DCF419F6E2FBF84F63CBACBA0097B06F557E.orport6_port 443
+9231DF741915AA1630031A93026D88726877E93A.address 51.255.41.65
+9231DF741915AA1630031A93026D88726877E93A.or_port 9001
+9231DF741915AA1630031A93026D88726877E93A.dir_port 9030
+92ECC9E0E2AF81BB954719B189AC362E254AD4A5.address 91.219.237.244
+92ECC9E0E2AF81BB954719B189AC362E254AD4A5.or_port 443
+92ECC9E0E2AF81BB954719B189AC362E254AD4A5.dir_port 80
+98F8D5F359949E41DE8DF3DBB1975A86E96A84A0.address 85.214.206.219
+98F8D5F359949E41DE8DF3DBB1975A86E96A84A0.or_port 9001
+98F8D5F359949E41DE8DF3DBB1975A86E96A84A0.dir_port 9030
99E246DB480B313A3012BC3363093CC26CD209C7.address 81.7.10.93
99E246DB480B313A3012BC3363093CC26CD209C7.or_port 31337
99E246DB480B313A3012BC3363093CC26CD209C7.dir_port 31336
-3D7E274A87D9A89AF064C13D1EE4CA1F184F2600.address 176.10.107.180
-3D7E274A87D9A89AF064C13D1EE4CA1F184F2600.or_port 9001
-3D7E274A87D9A89AF064C13D1EE4CA1F184F2600.dir_port 9030
-D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.address 37.187.115.157
-D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.or_port 9001
-D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.dir_port 9030
+9F7D6E6420183C2B76D3CE99624EBC98A21A967E.address 46.28.110.244
+9F7D6E6420183C2B76D3CE99624EBC98A21A967E.or_port 443
+9F7D6E6420183C2B76D3CE99624EBC98A21A967E.dir_port 80
+A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.address 46.165.230.5
+A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.or_port 443
+A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.dir_port 80
+A10C4F666D27364036B562823E5830BC448E046A.address 171.25.193.77
+A10C4F666D27364036B562823E5830BC448E046A.or_port 443
+A10C4F666D27364036B562823E5830BC448E046A.dir_port 80
+A10C4F666D27364036B562823E5830BC448E046A.orport6_address 2001:67c:289c:3::77
+A10C4F666D27364036B562823E5830BC448E046A.orport6_port 443
+A1EB8D8F1EE28DB98BBB1EAA3B4BEDD303BAB911.address 176.9.5.116
+A1EB8D8F1EE28DB98BBB1EAA3B4BEDD303BAB911.or_port 9001
+A1EB8D8F1EE28DB98BBB1EAA3B4BEDD303BAB911.dir_port 9030
+ABCB4965F1FEE193602B50A365425105C889D3F8.address 192.34.63.137
+ABCB4965F1FEE193602B50A365425105C889D3F8.or_port 443
+ABCB4965F1FEE193602B50A365425105C889D3F8.dir_port 9030
+ACD889D86E02EDDAB1AFD81F598C0936238DC6D0.address 86.59.119.88
+ACD889D86E02EDDAB1AFD81F598C0936238DC6D0.or_port 443
+ACD889D86E02EDDAB1AFD81F598C0936238DC6D0.dir_port 80
+AD253B49E303C6AB1E048B014392AC569E8A7DAE.address 163.172.131.88
+AD253B49E303C6AB1E048B014392AC569E8A7DAE.or_port 443
+AD253B49E303C6AB1E048B014392AC569E8A7DAE.dir_port 80
+AD253B49E303C6AB1E048B014392AC569E8A7DAE.orport6_address 2001:bc8:4400:2100::2:1009
+AD253B49E303C6AB1E048B014392AC569E8A7DAE.orport6_port 443
AE6A8C18E7499B586CD36246AC4BCAFFBBF93AB2.address 178.254.44.135
AE6A8C18E7499B586CD36246AC4BCAFFBBF93AB2.or_port 443
AE6A8C18E7499B586CD36246AC4BCAFFBBF93AB2.dir_port 80
-01A9258A46E97FF8B2CAC7910577862C14F2C524.address 193.171.202.146
-01A9258A46E97FF8B2CAC7910577862C14F2C524.or_port 9001
-01A9258A46E97FF8B2CAC7910577862C14F2C524.dir_port 9030
-9007C1D8E4F03D506A4A011B907A9E8D04E3C605.address 151.80.42.103
-9007C1D8E4F03D506A4A011B907A9E8D04E3C605.or_port 9001
-9007C1D8E4F03D506A4A011B907A9E8D04E3C605.dir_port 9030
-9007C1D8E4F03D506A4A011B907A9E8D04E3C605.orport6_address 2001:41d0:e:f67::114
-9007C1D8E4F03D506A4A011B907A9E8D04E3C605.orport6_port 9001
+AEA43CB1E47BE5F8051711B2BF01683DB1568E05.address 37.187.7.74
+AEA43CB1E47BE5F8051711B2BF01683DB1568E05.or_port 443
+AEA43CB1E47BE5F8051711B2BF01683DB1568E05.dir_port 80
+AEA43CB1E47BE5F8051711B2BF01683DB1568E05.orport6_address 2001:41d0:a:74a::1
+AEA43CB1E47BE5F8051711B2BF01683DB1568E05.orport6_port 443
B143D439B72D239A419F8DCE07B8A8EB1B486FA7.address 212.129.62.232
B143D439B72D239A419F8DCE07B8A8EB1B486FA7.or_port 443
B143D439B72D239A419F8DCE07B8A8EB1B486FA7.dir_port 80
-32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.address 109.105.109.162
-32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.or_port 60784
-32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.dir_port 52860
-32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.orport6_address 2001:948:7:2::163
-32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.orport6_port 5001
-39F096961ED2576975C866D450373A9913AFDC92.address 198.50.191.95
-39F096961ED2576975C866D450373A9913AFDC92.or_port 443
-39F096961ED2576975C866D450373A9913AFDC92.dir_port 80
-64186650FFE4469EBBE52B644AE543864D32F43C.address 89.187.142.208
-64186650FFE4469EBBE52B644AE543864D32F43C.or_port 443
-64186650FFE4469EBBE52B644AE543864D32F43C.dir_port 80
-D64366987CB39F61AD21DBCF8142FA0577B92811.address 37.221.162.226
-D64366987CB39F61AD21DBCF8142FA0577B92811.or_port 9001
-D64366987CB39F61AD21DBCF8142FA0577B92811.dir_port 9030
+B1726B94885CE3AC3910CA8B60622B97B98E2529.address 185.66.250.141
+B1726B94885CE3AC3910CA8B60622B97B98E2529.or_port 9001
+B1726B94885CE3AC3910CA8B60622B97B98E2529.dir_port 9030
+B83DC1558F0D34353BB992EF93AFEAFDB226A73E.address 193.11.114.46
+B83DC1558F0D34353BB992EF93AFEAFDB226A73E.or_port 9003
+B83DC1558F0D34353BB992EF93AFEAFDB226A73E.dir_port 9032
BC630CBBB518BE7E9F4E09712AB0269E9DC7D626.address 197.231.221.211
BC630CBBB518BE7E9F4E09712AB0269E9DC7D626.or_port 9001
BC630CBBB518BE7E9F4E09712AB0269E9DC7D626.dir_port 9030
-A10C4F666D27364036B562823E5830BC448E046A.address 171.25.193.77
-A10C4F666D27364036B562823E5830BC448E046A.or_port 443
-A10C4F666D27364036B562823E5830BC448E046A.dir_port 80
-A10C4F666D27364036B562823E5830BC448E046A.orport6_address 2001:67c:289c:3::77
-A10C4F666D27364036B562823E5830BC448E046A.orport6_port 443
+BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.address 198.96.155.3
+BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.or_port 5001
+BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.dir_port 8080
+BF0FB582E37F738CD33C3651125F2772705BB8E8.address 148.251.190.229
+BF0FB582E37F738CD33C3651125F2772705BB8E8.or_port 9010
+BF0FB582E37F738CD33C3651125F2772705BB8E8.dir_port 9030
+BF0FB582E37F738CD33C3651125F2772705BB8E8.orport6_address 2a01:4f8:211:c68::2
+BF0FB582E37F738CD33C3651125F2772705BB8E8.orport6_port 9010
+C414F28FD2BEC1553024299B31D4E726BEB8E788.address 188.138.112.60
+C414F28FD2BEC1553024299B31D4E726BEB8E788.or_port 1521
+C414F28FD2BEC1553024299B31D4E726BEB8E788.dir_port 1433
+C697612CA5AED06B8D829FCC6065B9287212CB2F.address 195.154.79.128
+C697612CA5AED06B8D829FCC6065B9287212CB2F.or_port 443
+C697612CA5AED06B8D829FCC6065B9287212CB2F.dir_port 80
+CBD0D1BD110EC52963082D839AC6A89D0AE243E7.address 37.59.46.159
+CBD0D1BD110EC52963082D839AC6A89D0AE243E7.or_port 9001
+CBD0D1BD110EC52963082D839AC6A89D0AE243E7.dir_port 9030
CBEE0F3303C8C50462A12107CA2AE061831931BC.address 91.121.54.8
CBEE0F3303C8C50462A12107CA2AE061831931BC.or_port 9001
CBEE0F3303C8C50462A12107CA2AE061831931BC.dir_port 9030
@@ -120,196 +237,51 @@ CBEFF7BA4A4062045133C053F2D70524D8BBE5BE.or_port 443
CBEFF7BA4A4062045133C053F2D70524D8BBE5BE.dir_port 80
CBEFF7BA4A4062045133C053F2D70524D8BBE5BE.orport6_address 2a03:b0c0:2:d0::b7:5001
CBEFF7BA4A4062045133C053F2D70524D8BBE5BE.orport6_port 443
-EC413181CEB1C8EDC17608BBB177CD5FD8535E99.address 91.219.236.222
-EC413181CEB1C8EDC17608BBB177CD5FD8535E99.or_port 443
-EC413181CEB1C8EDC17608BBB177CD5FD8535E99.dir_port 80
-49E7AD01BB96F6FE3AB8C3B15BD2470B150354DF.address 188.165.194.195
-49E7AD01BB96F6FE3AB8C3B15BD2470B150354DF.or_port 9001
-49E7AD01BB96F6FE3AB8C3B15BD2470B150354DF.dir_port 9030
-C697612CA5AED06B8D829FCC6065B9287212CB2F.address 195.154.79.128
-C697612CA5AED06B8D829FCC6065B9287212CB2F.or_port 443
-C697612CA5AED06B8D829FCC6065B9287212CB2F.dir_port 80
-DDD7871C1B7FA32CB55061E08869A236E61BDDF8.address 5.34.183.205
-DDD7871C1B7FA32CB55061E08869A236E61BDDF8.or_port 443
-DDD7871C1B7FA32CB55061E08869A236E61BDDF8.dir_port 80
-CBD0D1BD110EC52963082D839AC6A89D0AE243E7.address 37.59.46.159
-CBD0D1BD110EC52963082D839AC6A89D0AE243E7.or_port 9001
-CBD0D1BD110EC52963082D839AC6A89D0AE243E7.dir_port 9030
-322C6E3A973BC10FC36DE3037AD27BC89F14723B.address 212.83.154.33
-322C6E3A973BC10FC36DE3037AD27BC89F14723B.or_port 8443
-322C6E3A973BC10FC36DE3037AD27BC89F14723B.dir_port 8080
-DD85503F2D1F52EF9EAD621E942298F46CD2FC10.address 178.62.173.203
-DD85503F2D1F52EF9EAD621E942298F46CD2FC10.or_port 9001
-DD85503F2D1F52EF9EAD621E942298F46CD2FC10.dir_port 9030
-DD85503F2D1F52EF9EAD621E942298F46CD2FC10.orport6_address 2a03:b0c0:0:1010::a4:b001
-DD85503F2D1F52EF9EAD621E942298F46CD2FC10.orport6_port 9001
-C414F28FD2BEC1553024299B31D4E726BEB8E788.address 188.138.112.60
-C414F28FD2BEC1553024299B31D4E726BEB8E788.or_port 1521
-C414F28FD2BEC1553024299B31D4E726BEB8E788.dir_port 1433
-FFA72BD683BC2FCF988356E6BEC1E490F313FB07.address 193.11.164.243
-FFA72BD683BC2FCF988356E6BEC1E490F313FB07.or_port 9001
-FFA72BD683BC2FCF988356E6BEC1E490F313FB07.dir_port 9030
-FFA72BD683BC2FCF988356E6BEC1E490F313FB07.orport6_address 2001:6b0:7:125::243
-FFA72BD683BC2FCF988356E6BEC1E490F313FB07.orport6_port 9001
-5665A3904C89E22E971305EE8C1997BCA4123C69.address 94.23.204.175
-5665A3904C89E22E971305EE8C1997BCA4123C69.or_port 9001
-5665A3904C89E22E971305EE8C1997BCA4123C69.dir_port 9030
-E781F4EC69671B3F1864AE2753E0890351506329.address 176.31.180.157
-E781F4EC69671B3F1864AE2753E0890351506329.or_port 22
-E781F4EC69671B3F1864AE2753E0890351506329.dir_port 143
-E781F4EC69671B3F1864AE2753E0890351506329.orport6_address 2001:41d0:8:eb9d::1
-E781F4EC69671B3F1864AE2753E0890351506329.orport6_port 22
-4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.address 108.53.208.157
-4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.or_port 443
-4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.dir_port 80
-0BEA4A88D069753218EAAAD6D22EA87B9A1319D6.address 5.39.92.199
-0BEA4A88D069753218EAAAD6D22EA87B9A1319D6.or_port 443
-0BEA4A88D069753218EAAAD6D22EA87B9A1319D6.dir_port 80
-92ECC9E0E2AF81BB954719B189AC362E254AD4A5.address 91.219.237.244
-92ECC9E0E2AF81BB954719B189AC362E254AD4A5.or_port 443
-92ECC9E0E2AF81BB954719B189AC362E254AD4A5.dir_port 80
+D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE.address 134.119.3.164
+D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE.or_port 9001
+D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE.dir_port 9030
D2A1703758A0FBBA026988B92C2F88BAB59F9361.address 185.13.38.75
D2A1703758A0FBBA026988B92C2F88BAB59F9361.or_port 9001
D2A1703758A0FBBA026988B92C2F88BAB59F9361.dir_port 9030
-0756B7CD4DFC8182BE23143FAC0642F515182CEB.address 5.9.110.236
-0756B7CD4DFC8182BE23143FAC0642F515182CEB.or_port 9001
-0756B7CD4DFC8182BE23143FAC0642F515182CEB.dir_port 9030
-0756B7CD4DFC8182BE23143FAC0642F515182CEB.orport6_address 2a01:4f8:162:51e2::2
-0756B7CD4DFC8182BE23143FAC0642F515182CEB.orport6_port 9001
-2541759BEC04D37811C2209A88E863320271EC9C.address 185.61.138.18
-2541759BEC04D37811C2209A88E863320271EC9C.or_port 4443
-2541759BEC04D37811C2209A88E863320271EC9C.dir_port 8080
-9030DCF419F6E2FBF84F63CBACBA0097B06F557E.address 5.79.68.161
-9030DCF419F6E2FBF84F63CBACBA0097B06F557E.or_port 443
-9030DCF419F6E2FBF84F63CBACBA0097B06F557E.dir_port 81
-9030DCF419F6E2FBF84F63CBACBA0097B06F557E.orport6_address 2001:1af8:4700:a012:1::1
-9030DCF419F6E2FBF84F63CBACBA0097B06F557E.orport6_port 443
+D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.address 37.187.115.157
+D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.or_port 9001
+D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.dir_port 9030
+D64366987CB39F61AD21DBCF8142FA0577B92811.address 37.221.162.226
+D64366987CB39F61AD21DBCF8142FA0577B92811.or_port 9001
+D64366987CB39F61AD21DBCF8142FA0577B92811.dir_port 9030
DAA39FC00B196B353C2A271459C305C429AF09E4.address 193.35.52.53
DAA39FC00B196B353C2A271459C305C429AF09E4.or_port 9001
DAA39FC00B196B353C2A271459C305C429AF09E4.dir_port 9030
+DD85503F2D1F52EF9EAD621E942298F46CD2FC10.address 178.62.173.203
+DD85503F2D1F52EF9EAD621E942298F46CD2FC10.or_port 9001
+DD85503F2D1F52EF9EAD621E942298F46CD2FC10.dir_port 9030
+DD85503F2D1F52EF9EAD621E942298F46CD2FC10.orport6_address 2a03:b0c0:0:1010::a4:b001
+DD85503F2D1F52EF9EAD621E942298F46CD2FC10.orport6_port 9001
+DDD7871C1B7FA32CB55061E08869A236E61BDDF8.address 5.34.183.205
+DDD7871C1B7FA32CB55061E08869A236E61BDDF8.or_port 443
+DDD7871C1B7FA32CB55061E08869A236E61BDDF8.dir_port 80
E589316576A399C511A9781A73DA4545640B479D.address 46.252.26.2
E589316576A399C511A9781A73DA4545640B479D.or_port 49991
E589316576A399C511A9781A73DA4545640B479D.dir_port 45212
-A1EB8D8F1EE28DB98BBB1EAA3B4BEDD303BAB911.address 176.9.5.116
-A1EB8D8F1EE28DB98BBB1EAA3B4BEDD303BAB911.or_port 9001
-A1EB8D8F1EE28DB98BBB1EAA3B4BEDD303BAB911.dir_port 9030
-98F8D5F359949E41DE8DF3DBB1975A86E96A84A0.address 85.214.206.219
-98F8D5F359949E41DE8DF3DBB1975A86E96A84A0.or_port 9001
-98F8D5F359949E41DE8DF3DBB1975A86E96A84A0.dir_port 9030
-9F7D6E6420183C2B76D3CE99624EBC98A21A967E.address 46.28.110.244
-9F7D6E6420183C2B76D3CE99624EBC98A21A967E.or_port 443
-9F7D6E6420183C2B76D3CE99624EBC98A21A967E.dir_port 80
-A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.address 46.165.230.5
-A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.or_port 443
-A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.dir_port 80
-844AE9CAD04325E955E2BE1521563B79FE7094B7.address 192.87.28.82
-844AE9CAD04325E955E2BE1521563B79FE7094B7.or_port 9001
-844AE9CAD04325E955E2BE1521563B79FE7094B7.dir_port 9030
-30648BC64CEDB3020F4A405E4AB2A6347FB8FA22.address 213.61.66.118
-30648BC64CEDB3020F4A405E4AB2A6347FB8FA22.or_port 9001
-30648BC64CEDB3020F4A405E4AB2A6347FB8FA22.dir_port 9031
-2BA2C8E96B2590E1072AECE2BDB5C48921BF8510.address 144.76.26.175
-2BA2C8E96B2590E1072AECE2BDB5C48921BF8510.or_port 9011
-2BA2C8E96B2590E1072AECE2BDB5C48921BF8510.dir_port 9012
-7350AB9ED7568F22745198359373C04AC783C37C.address 176.31.191.26
-7350AB9ED7568F22745198359373C04AC783C37C.or_port 9001
-7350AB9ED7568F22745198359373C04AC783C37C.dir_port 9030
-794D8EA8343A4E820320265D05D4FA83AB6D1778.address 185.11.180.67
-794D8EA8343A4E820320265D05D4FA83AB6D1778.or_port 9001
-794D8EA8343A4E820320265D05D4FA83AB6D1778.dir_port 80
-6A640018EABF3DA9BAD9321AA37C2C87BBE1F907.address 144.76.73.140
-6A640018EABF3DA9BAD9321AA37C2C87BBE1F907.or_port 9001
-6A640018EABF3DA9BAD9321AA37C2C87BBE1F907.dir_port 9030
-0D3EBA17E1C78F1E9900BABDB23861D46FCAF163.address 178.62.197.82
-0D3EBA17E1C78F1E9900BABDB23861D46FCAF163.or_port 443
-0D3EBA17E1C78F1E9900BABDB23861D46FCAF163.dir_port 80
-BF0FB582E37F738CD33C3651125F2772705BB8E8.address 148.251.190.229
-BF0FB582E37F738CD33C3651125F2772705BB8E8.or_port 9010
-BF0FB582E37F738CD33C3651125F2772705BB8E8.dir_port 9030
-BF0FB582E37F738CD33C3651125F2772705BB8E8.orport6_address 2a01:4f8:211:c68::2
-BF0FB582E37F738CD33C3651125F2772705BB8E8.orport6_port 9010
-6FC6F08270D565BE89B7C819DD8E2D487397C073.address 94.126.23.174
-6FC6F08270D565BE89B7C819DD8E2D487397C073.or_port 9001
-6FC6F08270D565BE89B7C819DD8E2D487397C073.dir_port 9030
-75F1992FD3F403E9C082A5815EB5D12934CDF46C.address 46.101.237.246
-75F1992FD3F403E9C082A5815EB5D12934CDF46C.or_port 9001
-75F1992FD3F403E9C082A5815EB5D12934CDF46C.dir_port 9030
-75F1992FD3F403E9C082A5815EB5D12934CDF46C.orport6_address 2a03:b0c0:3:d0::208:5001
-75F1992FD3F403E9C082A5815EB5D12934CDF46C.orport6_port 9050
-8844D87E9B038BE3270938F05AF797E1D3C74C0F.address 93.180.156.84
-8844D87E9B038BE3270938F05AF797E1D3C74C0F.or_port 9001
-8844D87E9B038BE3270938F05AF797E1D3C74C0F.dir_port 9030
-29F1020B94BE25E6BE1AD13E93CE19D2131B487C.address 194.150.168.79
-29F1020B94BE25E6BE1AD13E93CE19D2131B487C.or_port 11111
-29F1020B94BE25E6BE1AD13E93CE19D2131B487C.dir_port 11112
-7A32C9519D80CA458FC8B034A28F5F6815649A98.address 82.223.21.74
-7A32C9519D80CA458FC8B034A28F5F6815649A98.or_port 9001
-7A32C9519D80CA458FC8B034A28F5F6815649A98.dir_port 9030
-7A32C9519D80CA458FC8B034A28F5F6815649A98.orport6_address 2001:470:53e0::cafe
-7A32C9519D80CA458FC8B034A28F5F6815649A98.orport6_port 9050
-0C2C599AFCB26F5CFC2C7592435924C1D63D9484.address 5.196.88.122
-0C2C599AFCB26F5CFC2C7592435924C1D63D9484.or_port 9001
-0C2C599AFCB26F5CFC2C7592435924C1D63D9484.dir_port 9030
+EBE718E1A49EE229071702964F8DB1F318075FF8.address 131.188.40.188
+EBE718E1A49EE229071702964F8DB1F318075FF8.or_port 80
+EBE718E1A49EE229071702964F8DB1F318075FF8.dir_port 443
+EC413181CEB1C8EDC17608BBB177CD5FD8535E99.address 91.219.236.222
+EC413181CEB1C8EDC17608BBB177CD5FD8535E99.or_port 443
+EC413181CEB1C8EDC17608BBB177CD5FD8535E99.dir_port 80
+F65E0196C94DFFF48AFBF2F5F9E3E19AAE583FD0.address 94.242.246.23
+F65E0196C94DFFF48AFBF2F5F9E3E19AAE583FD0.or_port 9001
+F65E0196C94DFFF48AFBF2F5F9E3E19AAE583FD0.dir_port 443
+F65E0196C94DFFF48AFBF2F5F9E3E19AAE583FD0.orport6_address 2a01:608:ffff:ff07::1:23
+F65E0196C94DFFF48AFBF2F5F9E3E19AAE583FD0.orport6_port 9003
F960DF50F0FD4075AC9B505C1D4FFC8384C490FB.address 46.101.143.173
F960DF50F0FD4075AC9B505C1D4FFC8384C490FB.or_port 443
F960DF50F0FD4075AC9B505C1D4FFC8384C490FB.dir_port 80
-17898F9A2EBC7D69DAF87C00A1BD2FABF3C9E1D2.address 178.32.216.146
-17898F9A2EBC7D69DAF87C00A1BD2FABF3C9E1D2.or_port 9001
-17898F9A2EBC7D69DAF87C00A1BD2FABF3C9E1D2.dir_port 9030
-D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE.address 134.119.3.164
-D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE.or_port 9001
-D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE.dir_port 9030
-3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B.address 164.132.77.175
-3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B.or_port 9001
-3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B.dir_port 9030
-9231DF741915AA1630031A93026D88726877E93A.address 51.255.41.65
-9231DF741915AA1630031A93026D88726877E93A.or_port 9001
-9231DF741915AA1630031A93026D88726877E93A.dir_port 9030
-2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E.address 62.210.124.124
-2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E.or_port 9101
-2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E.dir_port 9130
-2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E.orport6_address 2001:bc8:3f23:100::1
-2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E.orport6_port 9101
-AD253B49E303C6AB1E048B014392AC569E8A7DAE.address 163.172.131.88
-AD253B49E303C6AB1E048B014392AC569E8A7DAE.or_port 443
-AD253B49E303C6AB1E048B014392AC569E8A7DAE.dir_port 80
-AD253B49E303C6AB1E048B014392AC569E8A7DAE.orport6_address 2001:bc8:4400:2100::2:1009
-AD253B49E303C6AB1E048B014392AC569E8A7DAE.orport6_port 443
-ACD889D86E02EDDAB1AFD81F598C0936238DC6D0.address 86.59.119.88
-ACD889D86E02EDDAB1AFD81F598C0936238DC6D0.or_port 443
-ACD889D86E02EDDAB1AFD81F598C0936238DC6D0.dir_port 80
-FCB6695F8F2DC240E974510A4B3A0F2B12AB5B64.address 195.154.8.111
-FCB6695F8F2DC240E974510A4B3A0F2B12AB5B64.or_port 443
-FCB6695F8F2DC240E974510A4B3A0F2B12AB5B64.dir_port 80
-20462CBA5DA4C2D963567D17D0B7249718114A68.address 212.47.229.2
-20462CBA5DA4C2D963567D17D0B7249718114A68.or_port 9001
-20462CBA5DA4C2D963567D17D0B7249718114A68.dir_port 9030
-5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33.address 5.175.233.86
-5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33.or_port 443
-5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33.dir_port 80
-B1726B94885CE3AC3910CA8B60622B97B98E2529.address 185.66.250.141
-B1726B94885CE3AC3910CA8B60622B97B98E2529.or_port 9001
-B1726B94885CE3AC3910CA8B60622B97B98E2529.dir_port 9030
-B83DC1558F0D34353BB992EF93AFEAFDB226A73E.address 193.11.114.46
-B83DC1558F0D34353BB992EF93AFEAFDB226A73E.or_port 9003
-B83DC1558F0D34353BB992EF93AFEAFDB226A73E.dir_port 9032
-1DBAED235E3957DE1ABD25B4206BE71406FB61F8.address 46.101.151.222
-1DBAED235E3957DE1ABD25B4206BE71406FB61F8.or_port 443
-1DBAED235E3957DE1ABD25B4206BE71406FB61F8.dir_port 80
-5A5E03355C1908EBF424CAF1F3ED70782C0D2F74.address 78.142.142.246
-5A5E03355C1908EBF424CAF1F3ED70782C0D2F74.or_port 443
-5A5E03355C1908EBF424CAF1F3ED70782C0D2F74.dir_port 80
-ABCB4965F1FEE193602B50A365425105C889D3F8.address 192.34.63.137
-ABCB4965F1FEE193602B50A365425105C889D3F8.or_port 443
-ABCB4965F1FEE193602B50A365425105C889D3F8.dir_port 9030
-5CF8AFA5E4B0BB88942A44A3F3AAE08C3BDFD60B.address 178.16.208.62
-5CF8AFA5E4B0BB88942A44A3F3AAE08C3BDFD60B.or_port 443
-5CF8AFA5E4B0BB88942A44A3F3AAE08C3BDFD60B.dir_port 80
-5CF8AFA5E4B0BB88942A44A3F3AAE08C3BDFD60B.orport6_address 2a00:1c20:4089:1234:a6a4:2926:d0af:dfee
-5CF8AFA5E4B0BB88942A44A3F3AAE08C3BDFD60B.orport6_port 443
-1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7.address 91.219.237.229
-1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7.or_port 443
-1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7.dir_port 80
-361D33C96D0F161275EE67E2C91EE10B276E778B.address 217.79.190.25
-361D33C96D0F161275EE67E2C91EE10B276E778B.or_port 9090
-361D33C96D0F161275EE67E2C91EE10B276E778B.dir_port 9030
+FD1871854BFC06D7B02F10742073069F0528B5CC.address 192.187.124.98
+FD1871854BFC06D7B02F10742073069F0528B5CC.or_port 9001
+FD1871854BFC06D7B02F10742073069F0528B5CC.dir_port 9030
+FFA72BD683BC2FCF988356E6BEC1E490F313FB07.address 193.11.164.243
+FFA72BD683BC2FCF988356E6BEC1E490F313FB07.or_port 9001
+FFA72BD683BC2FCF988356E6BEC1E490F313FB07.dir_port 9030
+FFA72BD683BC2FCF988356E6BEC1E490F313FB07.orport6_address 2001:6b0:7:125::243
+FFA72BD683BC2FCF988356E6BEC1E490F313FB07.orport6_port 9001
diff --git a/test/unit/descriptor/remote.py b/test/unit/descriptor/remote.py
index 95fd6a7..1b818b6 100644
--- a/test/unit/descriptor/remote.py
+++ b/test/unit/descriptor/remote.py
@@ -175,7 +175,7 @@ class TestDescriptorDownloader(unittest.TestCase):
# quick sanity test that we can load cached content
fallback_directories = stem.descriptor.remote.FallbackDirectory.from_cache()
self.assertTrue(len(fallback_directories) > 10)
- self.assertEqual('5.175.233.86', fallback_directories['5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33'].address)
+ self.assertEqual('5.39.92.199', fallback_directories['0BEA4A88D069753218EAAAD6D22EA87B9A1319D6'].address)
@patch(URL_OPEN)
def test_fallback_directories_from_remote(self, urlopen_mock):
1
0
commit 275def62a430b4520d02118c190bb208854f8cd3
Author: Damian Johnson <atagar(a)torproject.org>
Date: Mon Oct 31 19:42:42 2016 -0700
Sync manual information
Just a few small tor changes since we last synced.
---
stem/cached_tor_manual.cfg | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/stem/cached_tor_manual.cfg b/stem/cached_tor_manual.cfg
index 0b8eea9..5b02091 100644
--- a/stem/cached_tor_manual.cfg
+++ b/stem/cached_tor_manual.cfg
@@ -6,8 +6,8 @@ description
|Basically, Tor provides a distributed network of servers or relays ("onion routers"). Users bounce their TCP streams -- web traffic, ftp, ssh, etc. -- around the network, and recipients, observers, and even the relays themselves have difficulty tracking the source of the stream.
|
|By default, tor will act as a client only. To help the network by providing bandwidth as a relay, change the ORPort configuration option -- see below. Please also consult the documentation on the Tor Project's website.
-man_commit 9f0cb5af1559d4dab0a49017bdd5f37b0af588f8
-stem_commit 3d0e999f8073bed67d84bb863560078e923a8b57
+man_commit 59247314d511022d9d2ec6b3b7c6d6263e72f44c
+stem_commit a30ef3e8398a160566e818f18fdcffe45a8762e6
commandline_options -f FILE => Specify a new configuration file to contain further Tor configuration options OR pass - to make Tor read its configuration from standard input. (Default: @CONFDIR@/torrc, or $HOME/.torrc if that file is not found)
commandline_options --ignore-missing-torrc => Specifies that Tor should treat a missing torrc file as though it were empty. Ordinarily, Tor does this for missing default torrc files, but not for those specified on the command line.
commandline_options --list-deprecated-options => List all valid options that are scheduled to become obsolete in a future version. (This is a warning, not a promise.)
@@ -270,14 +270,14 @@ config_options.SocksPort.name SocksPort
config_options.SocksPort.usage [address:]port|unix:path|auto [flags] [isolation flags]
config_options.SocksPort.summary Port for using tor as a Socks proxy
config_options.SocksPort.description
-|Open this port to listen for connections from SOCKS-speaking applications. Set this to 0 if you don't want to allow application connections via SOCKS. Set it to "auto" to have Tor pick a port for you. This directive can be specified multiple times to bind to multiple addresses/ports. (Default: 9050)
+|Open this port to listen for connections from SOCKS-speaking applications. Set this to 0 if you don't want to allow application connections via SOCKS. Set it to "auto" to have Tor pick a port for you. This directive can be specified multiple times to bind to multiple addresses/ports. If a unix domain socket is used, you may quote the path using standard C escape sequences. (Default: 9050)
|
|NOTE: Although this option allows you to specify an IP address other than localhost, you should do so only with extreme caution. The SOCKS protocol is unencrypted and (as we use it) unauthenticated, so exposing it in this way could leak your information to anybody watching your network, and allow anybody to use your computer as an open proxy.
|
|The isolation flags arguments give Tor rules for which streams received on this SocksPort are allowed to share circuits with one another. Recognized isolation flags are:
|
|IsolateClientAddr
-| Don't share circuits with streams from a different client address. (On by default and strongly recommended; you can disable it with NoIsolateClientAddr.)
+| Don't share circuits with streams from a different client address. (On by default and strongly recommended when supported; you can disable it with NoIsolateClientAddr. Unsupported and force-disabled when using Unix domain sockets.)
|
|IsolateSOCKSAuth
| Don't share circuits with streams for which different SOCKS authentication was provided. (On by default; you can disable it with NoIsolateSOCKSAuth.)
@@ -452,7 +452,9 @@ config_options.VirtualAddrNetworkIPv6.summary IPv6 address range to use when nee
config_options.VirtualAddrNetworkIPv6.description
|When Tor needs to assign a virtual (unused) address because of a MAPADDRESS command from the controller or the AutomapHostsOnResolve feature, Tor picks an unassigned address from this range. (Defaults: 127.192.0.0/10 and [FE80::]/10 respectively.)
|
-|When providing proxy server service to a network of computers using a tool like dns-proxy-tor, change the IPv4 network to "10.192.0.0/10" or "172.16.0.0/12" and change the IPv6 network to "[FC00::]/7". The default VirtualAddrNetwork address ranges on a properly configured machine will route to the loopback or link-local interface. For local use, no change to the default VirtualAddrNetwork setting is needed.
+|When providing proxy server service to a network of computers using a tool like dns-proxy-tor, change the IPv4 network to "10.192.0.0/10" or "172.16.0.0/12" and change the IPv6 network to "[FC00::]/7". The default VirtualAddrNetwork address ranges on a properly configured machine will route to the loopback or link-local interface. The maximum number of bits for the network prefix is set to 104 for IPv6 and 16 for IPv4. However, a wider network - smaller prefix length
+|
+|o is preferable since it reduces the chances for an attacker to guess the used IP. For local use, no change to the default VirtualAddrNetwork setting is needed.
config_options.AllowNonRFC953Hostnames.category Client
config_options.AllowNonRFC953Hostnames.name AllowNonRFC953Hostnames
config_options.AllowNonRFC953Hostnames.usage 0|1
@@ -676,7 +678,7 @@ config_options.PathsNeededToBuildCircuits.category Client
config_options.PathsNeededToBuildCircuits.name PathsNeededToBuildCircuits
config_options.PathsNeededToBuildCircuits.usage NUM
config_options.PathsNeededToBuildCircuits.summary Portion of relays to require information for before making circuits
-config_options.PathsNeededToBuildCircuits.description Tor clients don't build circuits for user traffic until they know about enough of the network so that they could potentially construct enough of the possible paths through the network. If this option is set to a fraction between 0.25 and 0.95, Tor won't build circuits until it has enough descriptors or microdescriptors to construct that fraction of possible paths. Note that setting this option too low can make your Tor client less anonymous, and setting it too high can prevent your Tor client from bootstrapping. If this option is negative, Tor will use a default value chosen by the directory authorities. (Default: -1.)
+config_options.PathsNeededToBuildCircuits.description Tor clients don't build circuits for user traffic until they know about enough of the network so that they could potentially construct enough of the possible paths through the network. If this option is set to a fraction between 0.25 and 0.95, Tor won't build circuits until it has enough descriptors or microdescriptors to construct that fraction of possible paths. Note that setting this option too low can make your Tor client less anonymous, and setting it too high can prevent your Tor client from bootstrapping. If this option is negative, Tor will use a default value chosen by the directory authorities. If the directory authorities do not choose a value, Tor will default to 0.6. (Default: -1.)
config_options.ClientBootstrapConsensusAuthorityDownloadSchedule.category Client
config_options.ClientBootstrapConsensusAuthorityDownloadSchedule.name ClientBootstrapConsensusAuthorityDownloadSchedule
config_options.ClientBootstrapConsensusAuthorityDownloadSchedule.usage N,N,...
@@ -853,7 +855,7 @@ config_options.ControlPort.name ControlPort
config_options.ControlPort.usage PORT|unix:path|auto [flags]
config_options.ControlPort.summary Port providing access to tor controllers (nyx, vidalia, etc)
config_options.ControlPort.description
-|If set, Tor will accept connections on this port and allow those connections to control the Tor process using the Tor Control Protocol (described in control-spec.txt in torspec). Note: unless you also specify one or more of HashedControlPassword or CookieAuthentication, setting this option will cause Tor to allow any process on the local host to control it. (Setting both authentication methods means either method is sufficient to authenticate to Tor.) This option is required for many Tor controllers; most use the value of 9051. Set it to "auto" to have Tor pick a port for you. (Default: 0)
+|If set, Tor will accept connections on this port and allow those connections to control the Tor process using the Tor Control Protocol (described in control-spec.txt in torspec). Note: unless you also specify one or more of HashedControlPassword or CookieAuthentication, setting this option will cause Tor to allow any process on the local host to control it. (Setting both authentication methods means either method is sufficient to authenticate to Tor.) This option is required for many Tor controllers; most use the value of 9051. If a unix domain socket is used, you may quote the path using standard C escape sequences. Set it to "auto" to have Tor pick a port for you. (Default: 0)
|
|Recognized flags are...
|
@@ -1476,7 +1478,7 @@ config_options.HiddenServicePort.category Hidden Service
config_options.HiddenServicePort.name HiddenServicePort
config_options.HiddenServicePort.usage VIRTPORT [TARGET]
config_options.HiddenServicePort.summary Port the hidden service is provided on
-config_options.HiddenServicePort.description Configure a virtual port VIRTPORT for a hidden service. You may use this option multiple times; each time applies to the service using the most recent HiddenServiceDir. By default, this option maps the virtual port to the same port on 127.0.0.1 over TCP. You may override the target port, address, or both by specifying a target of addr, port, addr:port, or unix:path. (You can specify an IPv6 target as [addr]:port.) You may also have multiple lines with the same VIRTPORT: when a user connects to that VIRTPORT, one of the TARGETs from those lines will be chosen at random.
+config_options.HiddenServicePort.description Configure a virtual port VIRTPORT for a hidden service. You may use this option multiple times; each time applies to the service using the most recent HiddenServiceDir. By default, this option maps the virtual port to the same port on 127.0.0.1 over TCP. You may override the target port, address, or both by specifying a target of addr, port, addr:port, or unix:path. (You can specify an IPv6 target as [addr]:port. Unix paths may be quoted, and may use standard C escapes.) You may also have multiple lines with the same VIRTPORT: when a user connects to that VIRTPORT, one of the TARGETs from those lines will be chosen at random.
config_options.PublishHidServDescriptors.category Hidden Service
config_options.PublishHidServDescriptors.name PublishHidServDescriptors
config_options.PublishHidServDescriptors.usage 0|1
@@ -1890,7 +1892,7 @@ config_options.AuthDirGuardBWGuarantee.category Authority
config_options.AuthDirGuardBWGuarantee.name AuthDirGuardBWGuarantee
config_options.AuthDirGuardBWGuarantee.usage N bytes|KBytes|MBytes|GBytes|KBits|MBits|GBits
config_options.AuthDirGuardBWGuarantee.summary Advertised rate necessary to be a guard
-config_options.AuthDirGuardBWGuarantee.description Authoritative directories only. If non-zero, this advertised capacity or more is always sufficient to satisfy the bandwidth requirement for the Guard flag. (Default: 250 KBytes)
+config_options.AuthDirGuardBWGuarantee.description Authoritative directories only. If non-zero, this advertised capacity or more is always sufficient to satisfy the bandwidth requirement for the Guard flag. (Default: 2 MBytes)
config_options.AuthDirPinKeys.category Authority
config_options.AuthDirPinKeys.name AuthDirPinKeys
config_options.AuthDirPinKeys.usage 0|1
1
0
commit 72fe2ec9dbdc8f19c5f2c03c398ab8206e76779d
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sun Oct 9 09:49:58 2016 -0700
Changelog footer stub for version 1.x
Besides the link at the top of the page adding a stub for the 1.x series.
---
docs/change_log.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/docs/change_log.rst b/docs/change_log.rst
index 29b211f..e70f0db 100644
--- a/docs/change_log.rst
+++ b/docs/change_log.rst
@@ -68,3 +68,10 @@ Python 2.5 is no longer supported, but hopefully by now nobody will miss it. ;)
* Interface continues to update while awaiting user input
+Version 1.x
+-----------
+
+Prior to its 2.x release Nyx went under the name of "**arm**". This series was
+under active development 2009-2012. Changelog for the series is available `here
+<change_log_legacy.html>`_.
+
1
0
commit 3d57d39df1d4bc316c3f5a613e23f00719a00688
Author: Damian Johnson <atagar(a)torproject.org>
Date: Mon Apr 11 19:42:32 2016 -0700
Initial docs
Barebones sphinx site based on Stem's. I plan for Nyx's to be unique but this
gives a good foundation to start with. Besides, parts like the download page
and changelog will be the same.
---
.gitignore | 1 +
docs/Makefile | 131 ++++++
docs/_static/buttons/bug_tracker.png | Bin 0 -> 28650 bytes
docs/_static/buttons/change_log.png | Bin 0 -> 26676 bytes
docs/_static/buttons/download.png | Bin 0 -> 27728 bytes
docs/_static/buttons/resources/bug_tracker.xcf | Bin 0 -> 83732 bytes
.../buttons/resources/button_background.xcf | Bin 0 -> 53014 bytes
docs/_static/buttons/resources/change_log.xcf | Bin 0 -> 66972 bytes
docs/_static/buttons/resources/download.xcf | Bin 0 -> 84072 bytes
docs/_static/favicon.png | Bin 0 -> 1555 bytes
docs/_static/haiku.css_t | 456 +++++++++++++++++++++
docs/_static/label/archlinux.png | Bin 0 -> 1618 bytes
docs/_static/label/debian.png | Bin 0 -> 1339 bytes
docs/_static/label/fedora.png | Bin 0 -> 1399 bytes
docs/_static/label/freebsd.png | Bin 0 -> 1645 bytes
docs/_static/label/gentoo.png | Bin 0 -> 1147 bytes
docs/_static/label/osx.png | Bin 0 -> 1767 bytes
docs/_static/label/python_package_index.png | Bin 0 -> 3106 bytes
docs/_static/label/redhat.png | Bin 0 -> 1492 bytes
docs/_static/label/resources/archlinux.xcf | Bin 0 -> 3573 bytes
docs/_static/label/resources/debian.xcf | Bin 0 -> 3137 bytes
docs/_static/label/resources/fedora.xcf | Bin 0 -> 3145 bytes
docs/_static/label/resources/freebsd.xcf | Bin 0 -> 3611 bytes
docs/_static/label/resources/gentoo.xcf | Bin 0 -> 2779 bytes
docs/_static/label/resources/osx.xcf | Bin 0 -> 3820 bytes
.../label/resources/python_package_index.xcf | Bin 0 -> 6285 bytes
docs/_static/label/resources/redhat.xcf | Bin 0 -> 3504 bytes
docs/_static/label/resources/slackware.xcf | Bin 0 -> 3567 bytes
docs/_static/label/resources/source_repository.xcf | Bin 0 -> 5479 bytes
docs/_static/label/resources/ubuntu.xcf | Bin 0 -> 3316 bytes
docs/_static/label/slackware.png | Bin 0 -> 1783 bytes
docs/_static/label/source_repository.png | Bin 0 -> 2757 bytes
docs/_static/label/ubuntu.png | Bin 0 -> 1126 bytes
docs/_static/logo.png | Bin 0 -> 6885 bytes
docs/_static/logo_orig.png | Bin 0 -> 9536 bytes
docs/_static/section/download/archlinux.png | Bin 0 -> 7144 bytes
docs/_static/section/download/debian.png | Bin 0 -> 5646 bytes
docs/_static/section/download/fedora.png | Bin 0 -> 4447 bytes
docs/_static/section/download/freebsd.png | Bin 0 -> 18114 bytes
docs/_static/section/download/gentoo.png | Bin 0 -> 16245 bytes
docs/_static/section/download/git.png | Bin 0 -> 2273 bytes
docs/_static/section/download/git_alt.png | Bin 0 -> 4749 bytes
docs/_static/section/download/osx.png | Bin 0 -> 3660 bytes
docs/_static/section/download/pypi.png | Bin 0 -> 3827 bytes
docs/_static/section/download/redhat.png | Bin 0 -> 4944 bytes
docs/_static/section/download/resources/fedora.svg | 74 ++++
docs/_static/section/download/slackware.png | Bin 0 -> 10938 bytes
docs/_static/section/download/ubuntu.png | Bin 0 -> 4814 bytes
docs/_static/style.css | 17 +
docs/_templates/layout.html | 80 ++++
docs/change_log.rst | 41 ++
docs/conf.py | 239 +++++++++++
docs/contents.rst | 9 +
docs/download.rst | 196 +++++++++
docs/index.rst | 32 ++
docs/republish | 7 +
docs/republish.py | 89 ++++
docs/roles.py | 73 ++++
58 files changed, 1445 insertions(+)
diff --git a/.gitignore b/.gitignore
index e0ab993..ed86815 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
*.pyc
src/stem/
build/
+docs/_build/
*.swp
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..e9ca020
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,131 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = _build
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
+
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " singlehtml to make a single large HTML file"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " devhelp to make HTML files and a Devhelp project"
+ @echo " epub to make an epub"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " text to make text files"
+ @echo " man to make manual pages"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ -rm -rf $(BUILDDIR)/*
+ @rm -f ./nyx.* ./modules.rst
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Nyx.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Nyx.qhc"
+
+devhelp:
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+ @echo "To view the help file:"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/Nyx"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Nyx"
+ @echo "# devhelp"
+
+epub:
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ make -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/docs/_static/buttons/bug_tracker.png b/docs/_static/buttons/bug_tracker.png
new file mode 100644
index 0000000..64650cb
Binary files /dev/null and b/docs/_static/buttons/bug_tracker.png differ
diff --git a/docs/_static/buttons/change_log.png b/docs/_static/buttons/change_log.png
new file mode 100644
index 0000000..e74fefc
Binary files /dev/null and b/docs/_static/buttons/change_log.png differ
diff --git a/docs/_static/buttons/download.png b/docs/_static/buttons/download.png
new file mode 100644
index 0000000..55eb007
Binary files /dev/null and b/docs/_static/buttons/download.png differ
diff --git a/docs/_static/buttons/resources/bug_tracker.xcf b/docs/_static/buttons/resources/bug_tracker.xcf
new file mode 100644
index 0000000..f938a92
Binary files /dev/null and b/docs/_static/buttons/resources/bug_tracker.xcf differ
diff --git a/docs/_static/buttons/resources/button_background.xcf b/docs/_static/buttons/resources/button_background.xcf
new file mode 100644
index 0000000..3766bce
Binary files /dev/null and b/docs/_static/buttons/resources/button_background.xcf differ
diff --git a/docs/_static/buttons/resources/change_log.xcf b/docs/_static/buttons/resources/change_log.xcf
new file mode 100644
index 0000000..70b243d
Binary files /dev/null and b/docs/_static/buttons/resources/change_log.xcf differ
diff --git a/docs/_static/buttons/resources/download.xcf b/docs/_static/buttons/resources/download.xcf
new file mode 100644
index 0000000..14d3339
Binary files /dev/null and b/docs/_static/buttons/resources/download.xcf differ
diff --git a/docs/_static/favicon.png b/docs/_static/favicon.png
new file mode 100644
index 0000000..00dc124
Binary files /dev/null and b/docs/_static/favicon.png differ
diff --git a/docs/_static/haiku.css_t b/docs/_static/haiku.css_t
new file mode 100644
index 0000000..cd3b28d
--- /dev/null
+++ b/docs/_static/haiku.css_t
@@ -0,0 +1,456 @@
+/*
+ * haiku.css_t
+ * ~~~~~~~~~~~
+ *
+ * Sphinx stylesheet -- haiku theme.
+ *
+ * Adapted from http://haiku-os.org/docs/Haiku-doc.css.
+ * Original copyright message:
+ *
+ * Copyright 2008-2009, Haiku. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ * Francois Revol <revol(a)free.fr>
+ * Stephan Assmus <superstippi(a)gmx.de>
+ * Braden Ewing <brewin(a)gmail.com>
+ * Humdinger <humdingerb(a)gmail.com>
+ *
+ * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+@import url("basic.css");
+
+html {
+ margin: 0px;
+ padding: 0px;
+ background: #FFF url(bg-page.png) top left repeat-x;
+}
+
+body {
+ line-height: 1.5;
+ margin: auto;
+ padding: 0px;
+ font-family: "DejaVu Sans", Arial, Helvetica, sans-serif;
+ min-width: 59em;
+ max-width: 70em;
+ color: {{ theme_textcolor }};
+}
+
+div.footer {
+ padding: 8px;
+ font-size: 11px;
+ text-align: center;
+ letter-spacing: 0.5px;
+}
+
+/* link colors and text decoration */
+
+a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: {{ theme_linkcolor }};
+}
+
+a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: {{ theme_visitedlinkcolor }};
+}
+
+a:hover, a:active {
+ text-decoration: underline;
+ color: {{ theme_hoverlinkcolor }};
+}
+
+/* Some headers act as anchors, don't give them a hover effect */
+
+h1 a:hover, a:active {
+ text-decoration: none;
+ color: {{ theme_headingcolor }};
+}
+
+h2 a:hover, a:active {
+ text-decoration: none;
+ color: {{ theme_headingcolor }};
+}
+
+h3 a:hover, a:active {
+ text-decoration: none;
+ color: {{ theme_headingcolor }};
+}
+
+h4 a:hover, a:active {
+ text-decoration: none;
+ color: {{ theme_headingcolor }};
+}
+
+a.headerlink {
+ color: #a7ce38;
+ padding-left: 5px;
+}
+
+a.headerlink:hover {
+ color: #a7ce38;
+}
+
+/* basic text elements */
+
+div.content {
+ margin-top: 20px;
+ margin-left: 40px;
+ margin-right: 40px;
+ margin-bottom: 50px;
+ font-size: 0.9em;
+}
+
+/* heading and navigation */
+
+div.header {
+ position: relative;
+ left: 0px;
+ top: 0px;
+ height: 85px;
+ /* background: #eeeeee; */
+ padding: 0 40px;
+}
+div.header h1 {
+ font-size: 1.6em;
+ font-weight: normal;
+ letter-spacing: 1px;
+ color: {{ theme_headingcolor }};
+ border: 0;
+ margin: 0;
+ padding-top: 15px;
+}
+div.header h1 a {
+ font-weight: normal;
+ color: {{ theme_headingcolor }};
+}
+div.header h2 {
+ font-size: 1.3em;
+ font-weight: normal;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ color: #aaa;
+ border: 0;
+ margin-top: -3px;
+ padding: 0;
+}
+
+div.header img.rightlogo {
+ float: right;
+}
+
+
+div.title {
+ font-size: 1.3em;
+ font-weight: bold;
+ color: {{ theme_headingcolor }};
+ border-bottom: dotted thin #e0e0e0;
+ margin-bottom: 25px;
+}
+div.topnav {
+ /* background: #e0e0e0; */
+}
+div.topnav p {
+ margin-top: 0;
+ margin-left: 40px;
+ margin-right: 40px;
+ margin-bottom: 0px;
+ font-size: 0.8em;
+}
+div.bottomnav {
+ background: #eeeeee;
+}
+div.bottomnav p {
+ margin-right: 40px;
+ font-size: 0.8em;
+}
+
+a.uplink {
+ font-weight: normal;
+}
+
+
+/* contents box */
+
+table.index {
+ margin: 0px 0px 30px 30px;
+ padding: 1px;
+ border-width: 1px;
+ border-style: dotted;
+ border-color: #e0e0e0;
+}
+table.index tr.heading {
+ background-color: #e0e0e0;
+ text-align: center;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+table.index tr.index {
+ background-color: #eeeeee;
+}
+table.index td {
+ padding: 5px 20px;
+}
+
+table.index a:link, table.index a:visited {
+ font-weight: normal;
+ text-decoration: none;
+ color: {{ theme_linkcolor }};
+}
+table.index a:hover, table.index a:active {
+ text-decoration: underline;
+ color: {{ theme_hoverlinkcolor }};
+}
+
+
+/* Haiku User Guide styles and layout */
+
+/* Rounded corner boxes */
+/* Common declarations */
+div.admonition {
+ -webkit-border-radius: 10px;
+ -khtml-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+ border-style: dotted;
+ border-width: thin;
+ border-color: #dcdcdc;
+ padding: 10px 15px 10px 15px;
+ margin-bottom: 15px;
+ margin-top: 15px;
+}
+div.note {
+ padding: 10px 15px 10px 80px;
+ background: #e4ffde url(alert_info_32.png) 15px 15px no-repeat;
+ min-height: 42px;
+}
+div.warning {
+ padding: 10px 15px 10px 80px;
+ background: #fffbc6 url(alert_warning_32.png) 15px 15px no-repeat;
+ min-height: 42px;
+}
+div.seealso {
+ background: #e4ffde;
+}
+
+/* More layout and styles */
+h1 {
+ font-size: 1.3em;
+ font-weight: bold;
+ color: {{ theme_headingcolor }};
+ border-bottom: dotted thin #e0e0e0;
+ margin-top: 30px;
+}
+
+h2 {
+ font-size: 1.2em;
+ font-weight: normal;
+ color: {{ theme_headingcolor }};
+ border-bottom: dotted thin #e0e0e0;
+ margin-top: 30px;
+}
+
+h3 {
+ font-size: 1.1em;
+ font-weight: normal;
+ color: {{ theme_headingcolor }};
+ margin-top: 30px;
+}
+
+h4 {
+ font-size: 1.0em;
+ font-weight: normal;
+ color: {{ theme_headingcolor }};
+ margin-top: 30px;
+}
+
+p {
+ text-align: justify;
+}
+
+p.last {
+ margin-bottom: 0;
+}
+
+ol {
+ padding-left: 20px;
+}
+
+ul {
+ padding-left: 5px;
+ margin-top: 3px;
+}
+
+li {
+ line-height: 1.3;
+}
+
+div.content li {
+ -moz-background-clip:border;
+ -moz-background-inline-policy:continuous;
+ -moz-background-origin:padding;
+ background: transparent url(bullet_orange.png) no-repeat scroll left 0.45em;
+ list-style-image: none;
+ list-style-type: none;
+ padding: 0 0 0 1.666em;
+ margin-bottom: 3px;
+}
+
+td {
+ vertical-align: top;
+}
+
+tt {
+ background-color: #e2e2e2;
+ font-size: 1.0em;
+ font-family: monospace;
+}
+
+pre {
+ border-color: #0c3762;
+ border-style: dotted;
+ border-width: thin;
+ margin: 0 0 12px 0;
+ padding: 0.8em;
+ background-color: #f0f0f0;
+}
+
+hr {
+ border-top: 1px solid #ccc;
+ border-bottom: 0;
+ border-right: 0;
+ border-left: 0;
+ margin-bottom: 10px;
+ margin-top: 20px;
+}
+
+/* printer only pretty stuff */
+@media print {
+ .noprint {
+ display: none;
+ }
+ /* for acronyms we want their definitions inlined at print time */
+ acronym[title]:after {
+ font-size: small;
+ content: " (" attr(title) ")";
+ font-style: italic;
+ }
+ /* and not have mozilla dotted underline */
+ acronym {
+ border: none;
+ }
+ div.topnav, div.bottomnav, div.header, table.index {
+ display: none;
+ }
+ div.content {
+ margin: 0px;
+ padding: 0px;
+ }
+ html {
+ background: #FFF;
+ }
+}
+
+.viewcode-back {
+ font-family: "DejaVu Sans", Arial, Helvetica, sans-serif;
+}
+
+div.viewcode-block:target {
+ background-color: #f4debf;
+ border-top: 1px solid #ac9;
+ border-bottom: 1px solid #ac9;
+ margin: -1px -12px;
+ padding: 0 12px;
+}
+
+/* Navbar */
+
+#navbar {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ float: left;
+ position: relative;
+}
+
+#navbar li {
+ float: left;
+ position: relative;
+}
+
+/* top navbar items */
+
+#navbar li a {
+ float: left;
+ display: block;
+ text-decoration: none;
+ color: #666;
+ font-weight: normal;
+ text-indent: 10px;
+ width: 130px;
+ font-size: 0.9em;
+}
+
+#navbar li:hover a,
+#navbar li a:hover {
+ font-weight: normal;
+ background: #999;
+ color: #fff;
+}
+
+/* start child items as invisible, but make them visible on hover */
+
+#navbar ul {
+ display: none;
+}
+
+#navbar li:hover ul {
+ display: block;
+}
+
+/* attributes for child navbar items */
+
+#navbar ul {
+ float: none;
+ position: absolute;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ top: 1.1em;
+ left: 0;
+}
+
+#navbar ul li {
+ float: none;
+ clear: none;
+ margin: 0;
+ padding: 0;
+ width: auto;
+ color: #666;
+}
+
+#navbar li:hover ul li a,
+#navbar ul li {
+ font-weight: normal;
+ text-indent: 5px;
+ line-height: 200%;
+ display: block;
+ padding: 0 0 0 0;
+ float: none;
+ color: #666;
+ background-color: #e0e0e0;
+}
+
+#navbar li:hover ul li a:hover,
+#navbar ul li a:hover {
+ font-weight: normal;
+ text-indent: 5px;
+ background-color: #c1c1c1;
+ color: #000;
+}
+
diff --git a/docs/_static/label/archlinux.png b/docs/_static/label/archlinux.png
new file mode 100644
index 0000000..c27a4f6
Binary files /dev/null and b/docs/_static/label/archlinux.png differ
diff --git a/docs/_static/label/debian.png b/docs/_static/label/debian.png
new file mode 100644
index 0000000..7f7b79d
Binary files /dev/null and b/docs/_static/label/debian.png differ
diff --git a/docs/_static/label/fedora.png b/docs/_static/label/fedora.png
new file mode 100644
index 0000000..b9661f6
Binary files /dev/null and b/docs/_static/label/fedora.png differ
diff --git a/docs/_static/label/freebsd.png b/docs/_static/label/freebsd.png
new file mode 100644
index 0000000..7b2e0c4
Binary files /dev/null and b/docs/_static/label/freebsd.png differ
diff --git a/docs/_static/label/gentoo.png b/docs/_static/label/gentoo.png
new file mode 100644
index 0000000..164aed8
Binary files /dev/null and b/docs/_static/label/gentoo.png differ
diff --git a/docs/_static/label/osx.png b/docs/_static/label/osx.png
new file mode 100644
index 0000000..10e4180
Binary files /dev/null and b/docs/_static/label/osx.png differ
diff --git a/docs/_static/label/python_package_index.png b/docs/_static/label/python_package_index.png
new file mode 100644
index 0000000..e33ff2b
Binary files /dev/null and b/docs/_static/label/python_package_index.png differ
diff --git a/docs/_static/label/redhat.png b/docs/_static/label/redhat.png
new file mode 100644
index 0000000..d2614db
Binary files /dev/null and b/docs/_static/label/redhat.png differ
diff --git a/docs/_static/label/resources/archlinux.xcf b/docs/_static/label/resources/archlinux.xcf
new file mode 100644
index 0000000..7b8da17
Binary files /dev/null and b/docs/_static/label/resources/archlinux.xcf differ
diff --git a/docs/_static/label/resources/debian.xcf b/docs/_static/label/resources/debian.xcf
new file mode 100644
index 0000000..35a5ff7
Binary files /dev/null and b/docs/_static/label/resources/debian.xcf differ
diff --git a/docs/_static/label/resources/fedora.xcf b/docs/_static/label/resources/fedora.xcf
new file mode 100644
index 0000000..97e4c70
Binary files /dev/null and b/docs/_static/label/resources/fedora.xcf differ
diff --git a/docs/_static/label/resources/freebsd.xcf b/docs/_static/label/resources/freebsd.xcf
new file mode 100644
index 0000000..7dcfa98
Binary files /dev/null and b/docs/_static/label/resources/freebsd.xcf differ
diff --git a/docs/_static/label/resources/gentoo.xcf b/docs/_static/label/resources/gentoo.xcf
new file mode 100644
index 0000000..eee000e
Binary files /dev/null and b/docs/_static/label/resources/gentoo.xcf differ
diff --git a/docs/_static/label/resources/osx.xcf b/docs/_static/label/resources/osx.xcf
new file mode 100644
index 0000000..5eab942
Binary files /dev/null and b/docs/_static/label/resources/osx.xcf differ
diff --git a/docs/_static/label/resources/python_package_index.xcf b/docs/_static/label/resources/python_package_index.xcf
new file mode 100644
index 0000000..4c9c30e
Binary files /dev/null and b/docs/_static/label/resources/python_package_index.xcf differ
diff --git a/docs/_static/label/resources/redhat.xcf b/docs/_static/label/resources/redhat.xcf
new file mode 100644
index 0000000..2002d66
Binary files /dev/null and b/docs/_static/label/resources/redhat.xcf differ
diff --git a/docs/_static/label/resources/slackware.xcf b/docs/_static/label/resources/slackware.xcf
new file mode 100644
index 0000000..52fdc38
Binary files /dev/null and b/docs/_static/label/resources/slackware.xcf differ
diff --git a/docs/_static/label/resources/source_repository.xcf b/docs/_static/label/resources/source_repository.xcf
new file mode 100644
index 0000000..5a491c1
Binary files /dev/null and b/docs/_static/label/resources/source_repository.xcf differ
diff --git a/docs/_static/label/resources/ubuntu.xcf b/docs/_static/label/resources/ubuntu.xcf
new file mode 100644
index 0000000..18e1643
Binary files /dev/null and b/docs/_static/label/resources/ubuntu.xcf differ
diff --git a/docs/_static/label/slackware.png b/docs/_static/label/slackware.png
new file mode 100644
index 0000000..6888a15
Binary files /dev/null and b/docs/_static/label/slackware.png differ
diff --git a/docs/_static/label/source_repository.png b/docs/_static/label/source_repository.png
new file mode 100644
index 0000000..df29a1f
Binary files /dev/null and b/docs/_static/label/source_repository.png differ
diff --git a/docs/_static/label/ubuntu.png b/docs/_static/label/ubuntu.png
new file mode 100644
index 0000000..9b66bcf
Binary files /dev/null and b/docs/_static/label/ubuntu.png differ
diff --git a/docs/_static/logo.png b/docs/_static/logo.png
new file mode 100644
index 0000000..30f1b6c
Binary files /dev/null and b/docs/_static/logo.png differ
diff --git a/docs/_static/logo_orig.png b/docs/_static/logo_orig.png
new file mode 100644
index 0000000..2844b0a
Binary files /dev/null and b/docs/_static/logo_orig.png differ
diff --git a/docs/_static/section/download/archlinux.png b/docs/_static/section/download/archlinux.png
new file mode 100644
index 0000000..430d5db
Binary files /dev/null and b/docs/_static/section/download/archlinux.png differ
diff --git a/docs/_static/section/download/debian.png b/docs/_static/section/download/debian.png
new file mode 100644
index 0000000..659dc8d
Binary files /dev/null and b/docs/_static/section/download/debian.png differ
diff --git a/docs/_static/section/download/fedora.png b/docs/_static/section/download/fedora.png
new file mode 100644
index 0000000..30d2062
Binary files /dev/null and b/docs/_static/section/download/fedora.png differ
diff --git a/docs/_static/section/download/freebsd.png b/docs/_static/section/download/freebsd.png
new file mode 100644
index 0000000..cec7774
Binary files /dev/null and b/docs/_static/section/download/freebsd.png differ
diff --git a/docs/_static/section/download/gentoo.png b/docs/_static/section/download/gentoo.png
new file mode 100644
index 0000000..c96e01c
Binary files /dev/null and b/docs/_static/section/download/gentoo.png differ
diff --git a/docs/_static/section/download/git.png b/docs/_static/section/download/git.png
new file mode 100644
index 0000000..529aa0f
Binary files /dev/null and b/docs/_static/section/download/git.png differ
diff --git a/docs/_static/section/download/git_alt.png b/docs/_static/section/download/git_alt.png
new file mode 100644
index 0000000..88e399e
Binary files /dev/null and b/docs/_static/section/download/git_alt.png differ
diff --git a/docs/_static/section/download/osx.png b/docs/_static/section/download/osx.png
new file mode 100644
index 0000000..bb9caca
Binary files /dev/null and b/docs/_static/section/download/osx.png differ
diff --git a/docs/_static/section/download/pypi.png b/docs/_static/section/download/pypi.png
new file mode 100644
index 0000000..5fd55b7
Binary files /dev/null and b/docs/_static/section/download/pypi.png differ
diff --git a/docs/_static/section/download/redhat.png b/docs/_static/section/download/redhat.png
new file mode 100644
index 0000000..7300b91
Binary files /dev/null and b/docs/_static/section/download/redhat.png differ
diff --git a/docs/_static/section/download/resources/fedora.svg b/docs/_static/section/download/resources/fedora.svg
new file mode 100644
index 0000000..8c9cbd6
--- /dev/null
+++ b/docs/_static/section/download/resources/fedora.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) by Marsupilami -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.0"
+ width="1024"
+ height="324"
+ viewBox="-1.77184308 -1.77184308 197.90104616 62.60512216"
+ id="svg2870"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="Fedora_logo_and_wordmark.svg"
+ inkscape:export-filename="/home/atagar/Desktop/fedora.png"
+ inkscape:export-xdpi="57.099247"
+ inkscape:export-ydpi="57.099247">
+ <metadata
+ id="metadata10">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="668"
+ inkscape:window-height="480"
+ id="namedview8"
+ showgrid="false"
+ inkscape:zoom="0.45996094"
+ inkscape:cx="801.51734"
+ inkscape:cy="162"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2870" />
+ <defs
+ id="defs2872" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3584"
+ style="fill:#072b61;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 194.35736,16.449737 C 194.35736,7.3649625 186.99245,0 177.90779,0 168.8271,0 161.46537,7.3587875 161.45876,16.43815 l -5e-4,-5.38e-4 0,12.729488 5e-4,5.37e-4 c 0.005,2.0615 1.67683,3.730388 3.73966,3.730388 l 0.0179,-5.25e-4 9.9e-4,5.25e-4 12.69702,0 c 9.08175,-0.0034 16.44297,-7.365788 16.44297,-16.448288" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3562"
+ style="fill:#0a57a4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 182.75,3.90625 c -4.26397,10e-8 -7.71875,3.4548375 -7.71875,7.71875 l 0,4.09375 -4.09375,0 c -4.26396,0 -7.71875,3.423888 -7.71875,7.6875 -1e-5,4.263838 3.45479,7.71875 7.71875,7.71875 4.26373,1e-6 7.71875,-3.454912 7.71875,-7.71875 l 0,-4.09375 4.09375,0 c 4.26369,1e-6 7.71875,-3.423663 7.71875,-7.6875 0,-4.263912 -3.45506,-7.71875 -7.71875,-7.71875 z m 0,3.625 c 2.25071,2e-7 4.09375,1.842775 4.09375,4.09375 0,2.250363 -1.84304,4.09375 -4.09375,4.09375 l -0.0312,0 -3.46875,0 c -0.31826,0 -0.59375,-0.276063 -0.59375,-0.59375 l 0,-3.5 c 0.004,-2.2480751 1.84598,-4.09375 4.09375,-4.09375 z m -11.8125,11.78125 3.5,0 c 0.31773,1e-6 0.59375,0.244663 0.59375,0.5625 l 0,3.53125 c -0.003,2.247326 -1.84571,4.09375 -4.09375,4.09375 -2.25041,1e-6 -4.09375,-1.843388 -4.09375,-4.09375 0,-2.25075 1.84334,-4.09375 4.09375,-4.09375 z"
+ sodipodi:nodetypes="sscsssscssscsscsscccssscsss" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3588"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 175.01713,15.7113 0,-4.086387 0,-0.0053 c 0,-4.263913 3.45636,-7.720338 7.72033,-7.720338 0.64712,0 1.10663,0.072625 1.7058,0.2295625 0.87288,0.2287375 1.58589,0.9440625 1.58643,1.7769625 2.4e-4,1.00655 -0.73035,1.7381375 -1.82225,1.7381375 -0.5204,0 -0.70824,-0.099563 -1.47026,-0.099563 -2.24777,0 -4.07055,1.82045 -4.07449,4.0685245 l 0,3.522563 0,5.37e-4 c 0,0.317688 0.25716,0.575338 0.57542,0.575338 l 0.002,0 2.67567,0 c 0.99728,0 1.8022,0.797875 1.80304,1.797475 0,1.00045 -0.80603,1.7968 -1.80304,1.7968 l -3.25271,0 0,4.10385 0,0.0054 c 0,4.2633 -3.45661,7.720225 -7.72034,7.720225 -0.64685,0 -1.10662,-0.07299 -1.70525,-0.2295 -0.8732,-0.228425 -1.58673,-0.944325 -1.58698,-1.776925 0,-1.0065 0.73065,-1.738475 1.82252,-1.738475 0.51985,0 0.70849,0.09988 1.46971,0.09988 2.24804,0 4.07135,-1.82095 4.07505,-4.0688 l 0,-3.5408 c 0,-0.3173 -0.25771,-0.574338 -0.57545,-0.574338 l -0.002,0 -2.6757,-5.37e-4 c -0.99726,0 -1.80297,-0.795588 -1.80297,-1.795725 -5.7e-4,-1.006325 0.8
1415,-1.79855 1.82221,-1.79855 l 3.23323,0" />
+</svg>
+<!-- version: 20080810, original size: 194.35736 59.061436, border: 3% -->
+
diff --git a/docs/_static/section/download/slackware.png b/docs/_static/section/download/slackware.png
new file mode 100644
index 0000000..324e046
Binary files /dev/null and b/docs/_static/section/download/slackware.png differ
diff --git a/docs/_static/section/download/ubuntu.png b/docs/_static/section/download/ubuntu.png
new file mode 100644
index 0000000..90a9c6e
Binary files /dev/null and b/docs/_static/section/download/ubuntu.png differ
diff --git a/docs/_static/style.css b/docs/_static/style.css
new file mode 100644
index 0000000..fe9db20
--- /dev/null
+++ b/docs/_static/style.css
@@ -0,0 +1,17 @@
+div.literal-block-wrapper {
+ padding: 0;
+}
+
+span.caption-text {
+ float: right;
+}
+
+span.red {
+ color: red;
+ font-weight: bold;
+}
+
+span.green {
+ color: green;
+ font-weight: bold;
+}
diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html
new file mode 100644
index 0000000..6e428a5
--- /dev/null
+++ b/docs/_templates/layout.html
@@ -0,0 +1,80 @@
+{#
+ haiku/layout.html
+ ~~~~~~~~~~~~~~~~~
+
+ Sphinx layout template for the haiku theme.
+
+ :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+#}
+{% extends "basic/layout.html" %}
+
+{% set css_files = css_files + ['_static/style.css'] %}
+
+{# do not display relbars #}
+{% block relbar1 %}{% endblock %}
+{% block relbar2 %}{% endblock %}
+
+{% macro nav() %}
+ <p>
+ {%- block haikurel1 %}
+ {%- endblock %}
+
+ <ul id="navbar">
+ <li><a href="{{ pathto(master_doc) }}">Home</a></li>
+ <li><a href="{{ pathto('screenshots') }}">Screenshots</a></li>
+ <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/nyx">Development</a>
+ <ul>
+ <li><a href="{{ pathto('faq') }}">FAQ</a></li>
+ <li><a href="{{ pathto('change_log') }}">Change Log</a></li>
+ <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/nyx/bugs">Bug Tracker</a></li>
+ <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/nyx">Wiki</a></li>
+ <li><a href="{{ pathto('download') }}">Download</a></li>
+ </ul>
+ </li>
+ <li><a href="{{ pathto('faq') }}#where-can-i-get-help">Contact</a>
+ <ul>
+ <li><a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev">Email List</a></li>
+ <li><a href="https://www.torproject.org/about/contact.html.en#irc">IRC</a></li>
+ <li><a href="https://www.atagar.com/contact/">Author</a></li>
+ </ul>
+ </li>
+ </ul>
+
+ {%- block haikurel2 %}
+ {%- endblock %}
+ </p>
+{% endmacro %}
+
+{% block content %}
+ <div class="header">
+ {%- block haikuheader %}
+ {%- if theme_full_logo != "false" %}
+ <a href="{{ pathto('index') }}">
+ <img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
+ </a>
+ {%- else %}
+ {%- if logo -%}
+ <img class="rightlogo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
+ {%- endif -%}
+ <h1 class="heading"><a href="{{ pathto('index') }}">
+ <span>{{ shorttitle|e }}</span></a></h1>
+ <h2 class="heading"><span>{{ title|striptags|e }}</span></h2>
+ {%- endif %}
+ {%- endblock %}
+ </div>
+ <div class="topnav">
+ {{ nav() }}
+ </div>
+ <div class="content">
+ {#{%- if display_toc %}
+ <div id="toc">
+ <h3>Table Of Contents</h3>
+ {{ toc }}
+ </div>
+ {%- endif %}#}
+ {% block body %}{% endblock %}
+ </div>
+ <div class="bottomnav">
+ </div>
+{% endblock %}
diff --git a/docs/change_log.rst b/docs/change_log.rst
new file mode 100644
index 0000000..9613a87
--- /dev/null
+++ b/docs/change_log.rst
@@ -0,0 +1,41 @@
+Change Log
+==========
+
+The following is a log of all user-facing changes to Nyx, both released and
+unreleased. For a monthly report on work being done see my `development log
+<http://blog.atagar.com/>`_.
+
+* :ref:`versioning`
+* :ref:`unreleased`
+
+.. _versioning:
+
+Versioning
+----------
+
+As of the 2.x release Nyx uses `semantic versioning <http://semver.org/>`_,
+which means that **versions consist of three numbers** (such as '**1.2.4**').
+These are used to convey the kind of backward compatibility a release has...
+
+ * The first value is the **major version**. This changes infrequently, and
+ indicates that backward incompatible changes have been made (such as the
+ removal of deprecated functions).
+
+ * The second value is the **minor version**. This is the most common kind of
+ release, and denotes that the improvements are backward compatible.
+
+ * The third value is the **patch version**. When a Nyx release has a major
+ issue another release is made which fixes just that problem. These do not
+ contain substantial improvements or new features. This value is sometimes
+ left off to indicate all releases with a given major/minor version.
+
+Prior to version 2.x nyx did not follow any particular versioning scheme.
+
+.. _unreleased:
+
+Unreleased
+----------
+
+The following are only available within Nyx's `git repository
+<download.html>`_.
+
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..5221073
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,239 @@
+# -*- coding: utf-8 -*-
+#
+# Nyx documentation build configuration file, created by
+# sphinx-quickstart on Thu May 31 09:56:13 2012.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+
+sys.path.insert(0, os.path.abspath('..'))
+sys.path.append(os.path.abspath('.'))
+# -- General configuration -----------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+needs_sphinx = '1.1' # required for the sphinx-apidoc command
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode', 'roles']
+
+autodoc_member_order = 'bysource'
+autodoc_default_flags = ['members', 'show-inheritance', 'undoc-members']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+from nyx import __version__, __author__, __contact__
+
+# Ignore the '-dev' version suffix.
+
+if __version__.endswith('-dev'):
+ __version__ = __version__[:-4]
+
+# General information about the project.
+project = 'Nyx'
+copyright = '2009, %s' % __author__
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = __version__[:__version__.rfind(".")]
+# The full version, including alpha/beta/rc tags.
+release = __version__
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = ['_build']
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#html_theme = 'default'
+html_theme = 'haiku'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+html_short_title = 'Nyx'
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+
+html_logo = 'logo.png'
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+
+html_favicon = 'favicon.png'
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+html_use_smartypants = False
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+html_show_sourcelink = False
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+html_show_sphinx = False
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+html_show_copyright = False
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'Nyxdoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+ ('index', 'Nyx.tex', 'Nyx Documentation',
+ 'Damian Johnson', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ ('index', 'Nyx', 'Nyx Documentation',
+ ['%s (%s)' % (__author__, __contact__)], 1)
+]
+
+trac_url = 'https://trac.torproject.org/{slug}'
+
+def skip_members(app, what, name, obj, skip, options):
+ if name in ('ATTRIBUTES', 'PARSER_FOR_LINE'):
+ return True # skip the descriptor's parser constants
+
+def setup(app):
+ app.connect('autodoc-skip-member', skip_members)
diff --git a/docs/contents.rst b/docs/contents.rst
new file mode 100644
index 0000000..4f04878
--- /dev/null
+++ b/docs/contents.rst
@@ -0,0 +1,9 @@
+Contents
+========
+
+.. toctree::
+ :maxdepth: 2
+
+ change_log
+ download
+
diff --git a/docs/download.rst b/docs/download.rst
new file mode 100644
index 0000000..1673565
--- /dev/null
+++ b/docs/download.rst
@@ -0,0 +1,196 @@
+Download
+========
+
+.. Image Sources:
+
+ * PyPI
+ Source: http://www.python.org/community/logos/
+ License: http://www.python.org/psf/trademarks
+
+ * OSX
+ Source: IconArchive (http://www.iconarchive.com/show/papercut-social-icons-by-graphicloads/Apple…)
+ Author: GraphicLoads, Papercut Social Icons
+ License: Freeware
+
+ * Debian
+ Source: NuoveXT (http://nuovext.pwsp.net/)
+ Author: Alexandre Moore (http://sa-ki.deviantart.com/)
+ License: GPL v2
+ File: NuoveXT/128x128/apps/debian-logo.png
+
+ * Ubuntu
+ Source: http://logonoid.com/ubuntu-logo/
+ Not quite sure of the license, probably covered by...
+ http://design.ubuntu.com/brand/ubuntu-logo
+
+ * Fedora
+ Source: https://en.wikipedia.org/wiki/File:Fedora_logo_and_wordmark.svg
+ Author: Unknown
+
+ * Red Hat
+ Source: NuoveXT (http://nuovext.pwsp.net/)
+ Author: Alexandre Moore (http://sa-ki.deviantart.com/)
+ License: GPL v2
+ File: NuoveXT/128x128/apps/fedora.png
+
+ * Gentoo
+ Source: https://www.gentoo.org/main/en/name-logo.xml
+
+ * Arch Linux
+ Source: https://en.wikipedia.org/wiki/File:Archlinux-official-fullcolour.svg
+
+ * Slackware
+ Source: NuoveXT (http://nuovext.pwsp.net/)
+ Author: Alexandre Moore (http://sa-ki.deviantart.com/)
+ License: GPL v2
+ File: NuoveXT/128x128/apps/slackware.png
+
+ * FreeBSD
+ Source: https://en.wikipedia.org/wiki/File:Freebsd_logo.svg
+ Author: Anton Gural
+
+ * Git
+ Source: https://en.wikipedia.org/wiki/File:Git-logo.svg
+ Author: Jason Long
+ License: CC v3 (A)
+
+ * Git (Alternate)
+ Source: http://www.dylanbeattie.net/git_logo/
+ Author: Dylan Beattie
+ License: CC v3 (A, SA)
+
+.. list-table::
+ :widths: 1 10
+ :header-rows: 0
+
+ * - .. image:: /_static/section/download/pypi.png
+ :target: https://pypi.python.org/pypi/stem/
+
+ - .. image:: /_static/label/python_package_index.png
+ :target: https://pypi.python.org/pypi/stem/
+
+ Signed releases and instructions for both Python 2.x and 3.x. You can
+ easily install from its `tarball
+ <https://pypi.python.org/packages/source/s/stem/stem-1.4.1b.tar.bz2>`_
+ (`sig
+ <https://pypi.python.org/packages/source/s/stem/stem-1.4.1b.tar.bz2.asc>`_),
+ or with **pip**...
+
+ ::
+
+ % sudo easy_install pip
+ % sudo pip install stem
+
+ * - .. image:: /_static/section/download/osx.png
+
+ - .. image:: /_static/label/osx.png
+
+ As of OSX 10.8 the platform bundles Python 2.7 by default. This makes
+ installation easy...
+
+ ::
+
+ % sudo easy_install pip
+ % sudo pip install stem
+
+ * - .. image:: /_static/section/download/debian.png
+ :target: http://packages.debian.org/sid/python-stem
+
+ - .. image:: /_static/label/debian.png
+ :target: http://packages.debian.org/sid/python-stem
+
+ Package maintained by Dererk for Debian.
+
+ ::
+
+ % sudo apt-get install python-stem
+
+ * - .. image:: /_static/section/download/ubuntu.png
+ :target: https://launchpad.net/ubuntu/+source/python-stem
+
+ - .. image:: /_static/label/ubuntu.png
+ :target: https://launchpad.net/ubuntu/+source/python-stem
+
+ Package derived from Debian for Ubuntu.
+
+ ::
+
+ % sudo apt-get install python-stem
+
+ * - .. image:: /_static/section/download/fedora.png
+ :target: https://apps.fedoraproject.org/packages/python-stem
+
+ - .. image:: /_static/label/fedora.png
+ :target: https://apps.fedoraproject.org/packages/python-stem
+
+ Packages maintained by Juan for Fedora. These include **python-stem**
+ (Stem for Python 2.x), **python3-stem** (Stem for Python 3.x), and
+ **python-stem-doc** (this website).
+
+ ::
+
+ % sudo yum install python-stem
+
+ * - .. image:: /_static/section/download/gentoo.png
+ :target: http://packages.gentoo.org/package/net-libs/stem
+
+ - .. image:: /_static/label/gentoo.png
+ :target: http://packages.gentoo.org/package/net-libs/stem
+
+ Package maintained by Anthony Basile for Gentoo.
+
+ ::
+
+ % sudo emerge stem
+
+ * - .. image:: /_static/section/download/archlinux.png
+ :target: https://aur.archlinux.org/packages/stem/
+
+ - .. image:: /_static/label/archlinux.png
+ :target: https://aur.archlinux.org/packages/stem/
+
+ Package maintained by Sjon for `Arch Linux
+ <https://wiki.archlinux.org/index.php/AUR#Installing_packages>`_.
+
+ ::
+
+ % wget https://aur.archlinux.org/packages/st/stem/stem.tar.gz
+ % tar -xvf stem.tar.gz
+ % cd stem
+ % makepkg --install
+
+ * - .. image:: /_static/section/download/slackware.png
+ :target: http://slackbuilds.org/repository/14.1/python/stem/
+
+ - .. image:: /_static/label/slackware.png
+ :target: http://slackbuilds.org/repository/14.1/python/stem/
+
+ Package maintained by Markus for `Slackware
+ <http://slackbuilds.org/howto/>`_.
+
+ * - .. image:: /_static/section/download/freebsd.png
+ :target: http://www.freshports.org/security/py-stem/
+
+ - .. image:: /_static/label/freebsd.png
+ :target: http://www.freshports.org/security/py-stem/
+
+ Port maintained by Carlo for `FreeBSD
+ <http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports.html>`_.
+
+ ::
+
+ % pkg install security/py-stem
+
+ * - .. image:: /_static/section/download/git.png
+ :target: https://gitweb.torproject.org/stem.git
+
+ - .. image:: /_static/label/source_repository.png
+ :target: https://gitweb.torproject.org/stem.git
+
+ For those wanting to live on the bleeding edge or contribute to Stem,
+ Stem's git repository can be fetched with...
+
+ ::
+
+ % git clone https://git.torproject.org/stem.git
+
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 0000000..6cf8d55
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,32 @@
+Welcome to Nyx!
+===============
+
+Nyx is a command line interface for `Tor <https://www.torproject.org/>`_, providing detailed real-time relaying information. With it you can view bandwidth usage, connections, logs, and much more. Nyx's latest version is **1.4.5** (released April 28th, 2012).
+
+.. Source: Nuovo (http://www.silvestre.com.ar/?p=5)
+ Author: Silvestre Herrera (http://www.silvestre.com.ar/)
+ License: GPL v2
+ File: Nuovo/128x128/mimetypes/gnome-mime-text-log.png
+
+.. image:: /_static/buttons/change_log.png
+ :target: change_log.html
+
+.. Source: Crystal (http://www.everaldo.com/crystal/)
+ Author: Everaldo Coelho (http://www.everaldo.com/)
+ License: LGPL v2
+ File: Crystal/64x64/apps/bug.png
+
+.. image:: /_static/buttons/bug_tracker.png
+ :target: https://trac.torproject.org/projects/tor/wiki/doc/nyx/bugs
+
+.. Source: ColorCons (http://mouserunner.com/Spheres_ColoCons1_Free_Icons.html)
+ Author: Ken Saunders (http://mouserunner.com/MRDS_Cell.html)
+ License: CC v2.5 (A, SA)
+ File: ColorCons/Blue/Download.png
+
+.. image:: /_static/buttons/download.png
+ :target: download.html
+
+.. toctree::
+ :maxdepth: 1
+
diff --git a/docs/republish b/docs/republish
new file mode 100755
index 0000000..c3c683a
--- /dev/null
+++ b/docs/republish
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+export PATH=/home/nyx/bin:$PATH
+export PYTHONPATH=/home/nyx/lib/python
+
+python /home/nyx/nyx/docs/republish.py $*&
+
diff --git a/docs/republish.py b/docs/republish.py
new file mode 100644
index 0000000..f9e9d29
--- /dev/null
+++ b/docs/republish.py
@@ -0,0 +1,89 @@
+import getopt
+import logging
+import subprocess
+import sys
+import time
+
+LOGGER = logging.getLogger('republish')
+LOGGER.setLevel(logging.INFO)
+
+handler = logging.FileHandler('/home/nyx/republish.log')
+handler.setFormatter(logging.Formatter(
+ fmt = '%(asctime)s [%(levelname)s] %(message)s',
+ datefmt = '%m/%d/%Y %H:%M:%S',
+))
+LOGGER.addHandler(handler)
+
+OPT = 'r:h'
+OPT_EXPANDED = ['repeat=', 'help']
+
+HELP_MSG = """\
+Republishes nyx's website. This can either be done or on a reoccurring basis.
+If nyx's repository is unchanged then this is a no-op.
+
+ -r, --repeat RATE tries to republish the site at a set rate, in minutes
+"""
+
+
+def run(command, cwd = None):
+ # Runs the given command. This returns the stdout if successful, and raises
+ # an OSError if it fails.
+
+ cmd = subprocess.Popen(command.split(' '), stdout = subprocess.PIPE, stderr = subprocess.PIPE, cwd = cwd)
+
+ if cmd.wait() == 0:
+ return cmd.communicate()[0]
+ else:
+ stdout, stderr = cmd.communicate()
+ raise OSError("'%s' failed\n stdout: %s\n stderr: %s" % (command, stdout.strip(), stderr.strip()))
+
+
+def republish_site():
+ # Checks if nyx's repository has changed, rebuilding the site if so. Ideally
+ # we'd use plumbing commands to check this but... meh. Patches welcome.
+
+ if 'Already up-to-date.' not in run('git pull', cwd = '/home/nyx/nyx'):
+ start_time = time.time()
+ LOGGER.log(logging.INFO, "Nyx's repository has changed. Republishing...")
+ run('make html', cwd = '/home/nyx/nyx/docs')
+ run('sudo -u mirroradm static-master-update-component nyx.torproject.org')
+
+ runtime = int(time.time() - start_time)
+ LOGGER.log(logging.INFO, ' site republished (took %s seconds)' % runtime)
+
+
+if __name__ == '__main__':
+ try:
+ opts = getopt.getopt(sys.argv[1:], OPT, OPT_EXPANDED)[0]
+ except getopt.GetoptError as exc:
+ print('%s (for usage provide --help)' % exc)
+ sys.exit(1)
+
+ repeat_rate = None
+
+ for opt, arg in opts:
+ if opt in ('-r', '--repeat'):
+ if arg.isdigit():
+ repeat_rate = int(arg)
+ else:
+ print("The --repeat argument must be an integer, got '%s'" % arg)
+ sys.exit(1)
+ elif opt in ('-h', '--help'):
+ print(HELP_MSG)
+ sys.exit()
+
+ if repeat_rate:
+ LOGGER.log(logging.INFO, 'Starting nyx site republisher')
+ latest_run = 0 # unix timestamp for when we last ran
+
+ while True:
+ while time.time() < (latest_run + repeat_rate * 60):
+ time.sleep(15)
+
+ try:
+ latest_run = time.time()
+ republish_site()
+ except OSError as exc:
+ LOGGER.log(logging.WARN, str(exc))
+ else:
+ republish_site()
diff --git a/docs/roles.py b/docs/roles.py
new file mode 100644
index 0000000..89db29a
--- /dev/null
+++ b/docs/roles.py
@@ -0,0 +1,73 @@
+import re
+
+from docutils.utils import unescape
+from docutils.nodes import reference
+from docutils.parsers.rst.roles import set_classes
+
+
+def role_trac(name, rawtext, text, lineno, inliner, options={}, content=[]):
+ """
+ Aliases :trac:`1234` to 'https://trac.torproject.org/1234'.
+
+ :param name: the role name used in the document
+ :param rawtext: the entire markup snippet, with role
+ :param text: the text marked with the role
+ :param lineno: the line number where rawtext appears in the input
+ :param inliner: the inliner instance that called us
+ :param options: directive options for customization
+ :param content: the directive content for customization
+ """
+
+ # checking if the number is valid
+ try:
+ ticket_num = int(text)
+
+ if ticket_num <= 0:
+ raise ValueError
+ except ValueError:
+ msg = inliner.reporter.error('Invalid trac ticket: %s' % text, line=lineno)
+ prb = inliner.problematic(rawtext, rawtext, msg)
+
+ return ([prb], [msg])
+
+ app = inliner.document.settings.env.app
+ link_text = 'ticket %s' % unescape(str(ticket_num))
+
+ return (
+ [make_link_node(rawtext, app, 'trac_url', link_text, str(ticket_num), options)],
+ [],
+ )
+
+
+def make_link_node(rawtext, app, url_type, link_text, slug, options):
+ """
+ Creates a link to a trac ticket.
+
+ :param rawtext: text being replaced with link node
+ :param app: sphinx application context
+ :param url_type: base for our url
+ :param link_text: text for the link
+ :param slug: ID of the thing to link to
+ :param options: options dictionary passed to role func
+ """
+
+ base_url = getattr(app.config, url_type, None)
+
+ if not base_url:
+ raise ValueError("'%s' isn't set in our config" % url_type)
+
+ ref = base_url.format(slug = slug)
+ set_classes(options)
+
+ return reference(rawtext, link_text, refuri = ref, **options)
+
+
+def setup(app):
+ """
+ Installs the plugin.
+
+ :param app: sphinx application context
+ """
+
+ app.add_role('trac', role_trac)
+ app.add_config_value('trac_url', None, 'env')
1
0
commit 9ac71a5906f5e87d8a3726e146167f77cf1a2720
Author: Damian Johnson <atagar(a)torproject.org>
Date: Mon Sep 19 19:34:53 2016 -0700
Move changelog to site
Moving information about our past releases from the ChangeLog file to our site.
This reshuffles the information to group similar to Stem, and drops notes from
before our first release. This also drops particularly minor notes.
---
ChangeLog | 701 ---------------------------------------------
docs/change_log.rst | 795 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 795 insertions(+), 701 deletions(-)
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 699d0c8..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,701 +0,0 @@
-CHANGE LOG
-
-4/28/12 - version 1.4.5 (e249dc8)
-Software isn't perfect and nyx is no exception. This is a bugfix release that corrects most issues that users have reported over the last several months. This does not include any new features, but includes changes that are important for continued interoperability with tor.
-
- * fix: unrecognized authentication methods (like 'SAFECOOKIE') would make nyx crash (caught by E)
- * fix: providing users a log message when DisableDebuggerAttachment breaks us
- * fix: crashing issue when parsing tor log entries from leap years (fix by Sebastian, https://trac.torproject.org/projects/tor/ticket/5265)
- * fix: major terminal glitches related to the import of the readline module (caught by Stephan Seitz)
- * fix: adding OSX (and probably BSD) support for pwd lookups (thanks to Sebastian, https://trac.torproject.org/projects/tor/ticket/4236)
- * fix: unnecessary validation warnings for DirReqStatistics with new tor versions (caught by Sebastian, https://trac.torproject.org/projects/tor/ticket/4237)
- * fix: better validation for path component of circuit-staus output (https://trac.torproject.org/projects/tor/ticket/5267)
- * fix: checking that the auth cookie is 32 bytes before reading (caught by rransom, https://trac.torproject.org/projects/tor/ticket/4305)
- * fix: tor process detection on Mac/FreeBSD/OpenBSD broken due to different variant of ps (caught thanks to a test system from Jordi Espasa Clofent)
- * fix: using only lsof for OpenBSD connection queries (caught thanks to a test system from Jordi Espasa Clofent)
- * fix: torrc validation was case sensitive (caught by koolfy, thanks to help from Runa, https://trac.torproject.org/projects/tor/ticket/4601)
- * fix: torrc validation warned of special deb Logging default (caught by koolfy, thanks to help from Sebastian and Runa, https://trac.torproject.org/projects/tor/ticket/4602)
- * fix: snapshot handler had buggy path handling (caught by Jeff Bonner, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646080)
- * fix: specifying python version requirement in rpm dependencies (caught by unSpawn, thanks to help from Juan Orti Alcaine)
- * fix: proc utils didn't account for big-endian architectures (caught by swalker, https://trac.torproject.org/projects/tor/ticket/4777)
- * fix: 'enter' on the connection page was mislabeled (patch by twilde, https://trac.torproject.org/projects/tor/ticket/4621)
- * fix: reproduced an ACS failure, noting it in the README and adding a config option to partly work around it (thanks to help from rransom)
- * fix: circuit listing would fail to be updated if connection information was unavailable
- * fix: errors in checking the auth cookie size prevented alternate authentication methods from being attempted
-
-9/25/11 - version 1.4.4 (881c67a)
-Besides the normal bug fixes and minor features, this release introduces the control port interpretor. This is a new page or standalone prompt that gives raw control port access with several usability improvements (tab completion, history, irc style help, interpretor commands, etc).
-
- * added: control port interpretor which provides...
- o tab completion
- o history scrollback
- o /help option which provides usage information for all of the tor/interpretor commands and tor configuration options
- o /info option for querying relay information via fingerprint, nickname, or IP address
- o /find option which searches the backlog for the given regex
- o /events option which displays any events that we've listened for
- o /write option which dumps the interpretor backlog to a file
- * added: control socket support (feature request by dererk, https://trac.torproject.org/projects/tor/ticket/3638)
- * added: optional system wide torrc integration (thanks to ioerror, https://trac.torproject.org/projects/tor/ticket/3629)
- * added: dialog for guards, bridges, and exits with exit port usage and client locales (feature request by waltman and ioerror)
- * added: configuration editor for the gui interface (implemented by krkhan)
- * added: notice that warns the user against running tor or nyx as root
- * change: doing a manual redraw when the user presses ctrl+L (https://trac.torproject.org/projects/tor/ticket/2830)
- * change: moving download location to archive.torproject.org so downloads will have ssl (suggested by arma)
- * change: rewrite of the descriptor popup, cleaning up the code and minor performance improvements
- * fix: preventing nyx from starting if there's a running tor instance that we can't connect to
- * fix: when the config-text GETINFO option was unavailable we'd write a blank torrc (caught by Runa)
- * fix: appending path prefix to auth cookie path (caught by sid77)
- * fix: skipping log parsing if misformatted (caught by Sjon)
- * fix: incorrect nyxrc path in man page (caught by dererk)
- * fix: trying all authentication methods rather than just the first (caught by arma, https://trac.torproject.org/projects/tor/ticket/3958)
- * fix: toning down the warning when all connection resolvers fail (suggested by Sebastian)
- * fix: quitting wizard when the user presses 'q' instead of just esc (suggested by monochromec, https://trac.torproject.org/projects/tor/ticket/3995)
- * fix: quitting could cause unclean curses shutdown
- * fix: relay address fetching would ignore default values at shutdown, causing a stacktrace
- * fix: concurrency bug could crash nyx if a CIRC event occurs while caching attached relays
- * fix: crashing issue from use of an uninitialized buffer when paused with accounting stats
- * fix: periodically redrawing content to prevent weird terminal glitches from persisting
- * fix: pressing 'enter' on config panel when never attached to tor would crash
- * fix: hotkey for saving the torrc conflicted with the relay setup wizard
- * fix: avoiding catch-all during controller init
- * fix: listener wasn't registering GUARD events
- * fix: dropping nonexistent ORCONN attributes
- * fix: clarifying the missing torrc message
- * fix (9/29/11, edcde43): dropping gtk/cagraph requirements (caught by monochromec, vinc3nt, and Bill White)
- * fix (9/29/11, edcde43): crash from esc in interpretor panel prompt (caught by Sebastian, https://trac.torproject.org/projects/tor/ticket/4098)
- * fix (9/29/11, edcde43): deduplicating 'Circuit build timeout' and 'looks like we don't need to wait so long' messages (patch by StrangeCharm, https://trac.torproject.org/projects/tor/ticket/4096)
- * fix (9/29/11, edcde43): forcing redraw on ctrl+L reguardless of need (caught by np, https://trac.torproject.org/projects/tor/ticket/2830)
-
-7/16/11 - version 1.4.3 (6cf4836)
-This completes the codebase refactoring project that's been a year in the works and provides numerous performance and usability improvements. Most notably this includes a setup wizard for new relays, menuing interface, gui prototype, substantial performance improvements, and support for Mac OSX.
-
- * added: relay setup wizard for autogenerating a torrc configuration
- * added: menu interface with all of nyx's functionality (thanks to help from krkhan)
- * added: option for reconnecting to tor if it's been shut down and restarted
- * added: fetching the download and upload bandwidth totals from Tor if it's available
- * added: option for requesting a new identity
- * added: file descriptor usage in the header panel when running low
- * added: logging a notice when file descriptor usage is high
- * added: making interface components optionally excludeable
- * added: reintroduced the descriptor popup for the new connection panel
- * added: moved nyx's codebase to git, with helper scripts to replace svn:externals and export
- * added: option for overriding all displayed color
- * change: renaming our process from "python src/starter.py <args>" to "nyx <args>" (thanks to help from ioerror)
- * change: hiding connection init latency, dropping nyx's startup time from 0.84 seconds to 0.14 (83% improvement)
- * change: using blank space to display the nickname for circuit connections
- * change: dropping the file descriptor popup (it was both unused and inaccurate)
- * change: dropping deprecated connection panel from the codebase
- * change: using SAVECONF rather than writing directly when able
- * change: closing all message prompts when a key is pressed
- * change: using a more intuitive mode toggling for resizing the graph
- * change: added summaries for new tor config options
- * fix: avoiding mass memory allocation in torctl, lowering nyx's perceived base memory footprint by 2.5 MB (12%) (https://trac.torproject.org/projects/tor/ticket/3406)
- * fix: fixing shutdown concurrency in torctl, lowering nyx's shutdown time from a second to being almost instantaneous (https://trac.torproject.org/projects/tor/ticket/2412)
- * fix: sighups that caused tor to crash would also crash torctl and nyx (https://trac.torproject.org/projects/tor/ticket/1329)
- * fix: crash when connecting to tor's socks port rather than control port (https://trac.torproject.org/projects/tor/ticket/2580)
- * fix: shutting down torctl zombie connections to the control port (https://trac.torproject.org/projects/tor/ticket/2812)
- * fix: moving connection component negotiation into torctl (https://trac.torproject.org/projects/tor/ticket/3409)
- * fix: all pid resolution was failing on macs, causing much of nyx's functionality to fail
- * fix: dropping straight to lsof on macs to avoid fallback process, which was both lengthy and raised warnings
- * fix: misparsing circuit paths for Tor < 0.2.2.1 (caught by asn)
- * fix: pressing enter on an empty connection page caused crash (caught by asn, https://trac.torproject.org/projects/tor/ticket/3128)
- * fix: edited config entries weren't displaying their new value
- * fix: ns/desc lookup failures could crash descriptor popup (caught by asn)
- * fix: autogenerated Nickname field caused a torrc validation false positive
- * fix: crashing issue when querying locales with an unavailable geoip file
- * fix: misparsing config option types for some older tor versions
- * fix: stacktrace from unjoined thread at shutdown
- * fix: intermediate graphing bounds were either inaccurate or missing
- * fix: man page typo (caught by tagnaq)
- * fix: --debug flag broke if config-text unavailable (caught by trogdor)
- * fix: man page had author's hard coded home rather than ~ (caught by kuhkatz)
- * fix: dropping remaining addfstr usage from the codebase
- * fix: indicating when tor's shut down in client mode
- * fix: miscropping strings that broke on their first word, causing alignment issues in the config panel
- * fix: cropping whitespace-only strings could crash
- * fix: display was cropped by an extra cell
- * fix: utilizing extra horizontal space for the configuration value field if wide
- * fix: providing a more descriptive controller password prompt (suggestion by weasel)
- * fix: fallback configuration descriptions weren't being installed (caught by ioerror)
- * fix: daemons weren't being shut down on keyboard interrupt, causing occasional stacktrace
-
-4/4/11 - version 1.4.2 (r24555)
-This release chiefly consists of a fully reimplemented connection panel. Besides being a sane, maintainable implementation this includes numerous new features and improvements like full circuit paths, applications involved for local connections, and better type identification.
-
- * added: full rewrite of the connection panel, providing:
- o listing the full paths involved in active circuits
- o identification of socks, hidden service, and controller applications (nyx, vidalia, polipo, etc)
- o identification of exit connections with the common usage for the port they're using
- o display of the local -> internal -> external address when room is available (original patch by Fabian Keil)
- o better accuracy and performance in identifying client and directory connections
- o marking the uptimes for initial connections (nyx only tracks connection uptimes since starting, so these entries are just minimum durations)
- o lazily loading the initial IP -> fingerprint mappings to improve the startup time
- o using the circuit-status to disambiguating multiple relays on the same IP address
- o smarter space utilization, filling in smaller columns if there isn't room for higher priority but larger entries
- o connection details popup changes:
- + using the consensus exit policies rather than the longer descriptor versions when available
- + displaying connection details no longer freezes the rest of the display
- + detail panel uses the full screen width and is dynamically resizable
- + more resilient to missing descriptors
- * change: hiding most tor config values by default (idea by arma)
- * change: dropping warning suggesting that users set the FetchUselessDescriptors option (suggestion by Sebastian and others)
- * change: always starting the bandwidth field from zero rather than using the state file total, which only contains the last day's worth of data (thanks to guilhem)
- * change: suggesting authentication and giving steps for it in the readme (suggestion by Sebastian)
- * change: caching config display lines, which reduces the CPU usage when scrolling by around 40%
- * change: added summaries for the remaining tor configuration options
- * change: using a dedicated enum class rather than tuple sets
- * fix: torrc validation requires 'GETINFO config-text' which was introduced in Tor verison 0.2.2.7 (caught by Sjon, talion, and torland, https://trac.torproject.org/projects/tor/ticket/2501)
- * fix: off-by-one issue with the displayed line numbers for torrc errors (caught by Sjon)
- * fix: bin function wasn't available before python 2.6 (caught by Paul Menzel)
- * fix: mis-parsing family entries when there's no entry after the comma (caught by StrangeCharm, https://trac.torproject.org/projects/tor/ticket/2414)
- * fix: preventing SOCKS and CONTROL connections from being expanded (patch by Fabian Keil)
- * fix: disabling name resolution for application queries to avoid leaking to resolvers (patch by Fabian Keil)
- * fix: reversing src and dst addresses of SOCKS and CONTROL connections (caught by Fabian Keil)
- * fix: changing the 'APPLICATION' type to 'SOCKS' since the previous label was too long (caught by Fabian Keil)
- * fix: crashing issue from unknown relay nicknames (caught by krkhan)
- * fix: concurrency bug occasionally causing "syshook" stacktraces when shutting down
- * fix: header panel displayed the wrong IP address if it changed since we first started (https://trac.torproject.org/projects/tor/ticket/2776)
- * fix: unchecked OSError could cause us to crash when making directories (for instance if there was a permissions issue)
- * fix: the availability check for bsd resolvers was broken, probably causing resolution to fail for a few seconds on that platform
- * fix: dropping the pointless 'Log notice stdout' entry provided by config-text queries (https://trac.torproject.org/projects/tor/ticket/2362)
- * fix: taking DirServer and AlternateDirAuthority into account when determining the directory authorities
- * fix: consuming a little extra space in the connection panel when scrollbars aren't visible
- * fix: dropping the deprecated 'features.config.descriptions.persistPath' config option
- * fix: failed connection attempts to the control port were generating zombie connections (https://trac.torproject.org/projects/tor/ticket/2812)
- * fix: concurrency bug in joining on the TorCtl thread when tor shut down
- * fix: the 'startup.dataDirectory' config option was being ignored
- * fix: recognizing the proper private ip ranges of the 172.* block
- * fix: missing 'is default' option from config sort ordering
- * fix (4/4/11, r24562): hidden service parsing issue when there's multiple spaces in the HiddenServicePort opition (caught by Nicolas Pouillard)
- * fix (4/6/11, r24570): missing new connection components from installations (caught by Anthony Basile)
- * fix (4/13/11, r24613): failed requests for our flags cause a syntax error (caught by qbi)
-
-1/7/11 - version 1.4.1 (r24054)
-Platform specific enhancements including BSD compatibility and vastly improved performance on Linux.
-
- * added: querying the proc contents when able for tor resource and connection samplings to *greatly* reduce nyx's resource usage (many thanks to psutil)
- * added: vastly improved BSD compatibility, thanks to patches by Fabian Keil
- o pid resolution via pgrep (all platforms) and sockstat (bsd only)
- o connection resolution via sockstat (all platforms) and procstat (bsd only)
- o autodetecting the path prefix for FreeBSD jails
- * added: displaying summaries of the options on the configuration panel (idea by Sebastian)
- * added: nyx cpu usage to the header panel and logs (with an estimate for system call usages)
- * added: testing script for checking connection resolution performance, connection dumps, and the glyph demo
- * added: option to dump nyx debug logs (better failsafe option)
- * change: incrementing the uptime field of the header panel each second
- * change: centralizing nyx resources in ~/.nyx (suggested by Sebastian and also thanks to feedback from rransom)
- * change: using exponential backoff of ps/proc resource resolutions when calls fail or tor isn't running
- * change: reordered resolvers by order of performance
- * change: when tor's man page is unavailable falling back to descriptions provided with nyx (often the case with tbb)
- * change: dropping support for graphing of custom ps attributes (feature was never used, kinda pointless, and incompatible with the proc enhancement)
- * fix: providing proper cpu samplings rather than an average over the life of the process
- * fix: expanding relative paths for the authentication cookie (mostly a problem for tbb instances)
- * fix: crashing error when querying hidden service parameters (caught by StrangeCharm, fixed by katmagic and chiiph)
- * fix: initially built diff differed from rebuilt version since it was missing the pycompat (caught by weasel)
- * fix: startup script wasn't handling unusual paths, such as with spaces and dashes (caught by weasel)
- * fix: startup script was forking the final process instead of calling exec (caught by weasel)
- * fix: log entries weren't being bracketed by date dividers when no scroll bars were visible (caught thanks to twur)
- * fix: workaround for config-text providing Log entries regardless of if it matches the default (caught thanks to Trystero)
- * fix: config validation mistakenly thought that Tor stripped spaces from CSV getconf responses (caught by murble)
- * fix: presenting a text input field with python 2.5 would crash (caught by murble)
- * fix: reloading torrc contents when a sighup is issued (caught by StrangeCharm)
- * fix: modifying lsof resolution to work with additional platforms (patch by Fabian Keil)
- * fix: dropping the locale for internal connections (patch by Fabian Keil)
- * fix: labeling connections to our socks port as being client connections (caught by Fabian Keil)
- * fix: skipping internal -> external address translation when the external address is private (caught by Fabian Keil)
- * fix: suppressing superfluous lsof warnings (patch by Hans Schnehl)
- * fix: when the pid was unavailable some resolvers failed to work
- * fix: including udp connection results (needed since exits proxy dns traffic)
- * fix: crashing issue when nickname was undefined but displayed on the connection panel
- * fix: concurrency issue caused the first connection resolution to often not have the pid
- * fix: connection resolution wasn't finding results if tor was running under a different name
- * fix: brought all Linux connection resolvers into parity (established tcp connections only)
- * fix: commands with quoted pipes were being mis-parsed by the sysTools' call function
- * fix (1/11/11, r24064): including platform, python version, and nyx/tor configurations in debug dumps
- * fix (1/11/11, r24064): properly parse the ps field when displaying decimal seconds (patch by Fabian)
- * fix (1/11/11, r24064): error when initial resource lookups fail (caught by Trystero)
- * fix (1/12/11, r24075): decimal seconds in the ps uptime field were being misparsed (patch by Fabian)
- * fix (1/15/11, r24092): adding a --docPath argument to help Gentoo ebuilds (https://bugs.gentoo.org/349792)
-
-11/27/10 - version 1.4.0 (r23873)
-Introducing a new page for managing tor's configuration, along with several other improvements.
-
- * added: editor for the tor configuration, providing:
- o a simple method for setting config values and saving the new torrc
- o descriptions and usage information for the tor configuration options, fetched from its man page
- o color and bolding to indication option categories and if they're default or custom values
- o sorting by any of the config attributes
- * change: numerous revisions in preparation for being included in debian, thanks to weasel
- o moved deb/rpm build resources out of the source repository and added helper scripts
- o moved the nyx install location to /usr/share/nyx
- o purging the autogenerated egg file from the deb build
- o using temporary file utility for man page compression to avoid potential security issues (thanks to asn)
- o including dh_pysupport flag so it'll recognize the private python module (thanks to Emilio Pozuelo Monfort)
- o small revisions to several bits of debian metadata
- * change: full rewrite of the log panel, providing:
- o added: scrollbar and scrolling by displayed content rather than line numbers
- o added: checking for torrc entries that are pointless due to matching the default value
- o added: validation warning when custom entries are missing from the torrc
- o added: handling for the multiline torrc entry support that was added in tor 0.2.2.17-alpha
- o change: simplified and expanded on the config display and validation (performance improvements, human friendly units for torrc corrections, etc)
- o fix: torrc validation didn't recognize 'second' and 'byte' arguments
- o fix: scrolling was buggy if comments were being stripped
- o fix: more helpful messages for validation errors
- o fix: unnecessary whitespace was being stripped
- * added: INFO level logging for the nyx startup time
- * change: removing all references to the controller password after we've connected to tor (request by ioerror)
- * change: using curses.textpad to improve text fields (supports arrow keys, emacs keybindings, etc)
- * change: revised the nyx config interface (simplified and expanded to include maps)
- * fix: verbose logging was causing the application to freeze due to an n^2 deduplication implementation, disabling this feature for now when it takes too long (caught by NightMonkey)
- * fix: wasn't loading the settings.cfg if starting starter from the src directory (caught by NightMonkey)
- * fix: displaying empty conf contents caused crashes when calling math.log10(0) (caught by NightMonkey)
- * fix: persisting results from scraping the man page to greatly reduce startup time (idea by nickm)
- * fix: path for the sample nyxrc was wrong in the man page (caught by weasel)
- * fix: the nyx starter was only executable from the nyx directory
- * fix: not all worker threads were daemons, causing the process to persist in a broken state after exceptions and when quitting via ctrl+c
- * fix: custom nyxrcs resulted in the parsing config options being unavailable
- * fix: rounding error in rendering the scrollbar, causing it to shrink a line when at the bottom
- * fix: crashing issue when the 'queries.ps.rate' config value was undefined and the stats graph was displayed
- * fix: making the interface more resilient to being resized while popups are visible
- * fix: log panel wasn't respecting the prepopulate* log level config options
- * fix: off by one error when wrapping lines in the log panel
- * fix (11/30/10, r23882): install script was failing to make the temporary directory for the compressed man page
- * fix (11/30/10, r23882): a torrc validation log entries had a typo
-
-10/6/10 - version 1.3.7 (r23439)
-Numerous improvements, most notably being an expanded log panel, installer, and deb/rpm builds.
-
- * added: installation/removal scripts and man page (thanks to kaner)
- * added: scripts and resources for making deb and rpm releases (thanks to ioerror, and also requested by helmut)
- * added: path prefix option for chroot jails (requested by asn)
- * added: customizable graph size (requested by voidzero)
- * added: incremental y-axis measurements to the graph (requested by voidzero)
- * added: caching for static GETINFO parameter
- * added: logging for the refresh rate metric
- * change: full rewrite of the log panel, providing:
- o dividers for the date, bordering all events that occurred on the same day
- o hiding duplicate log entries (feature request by asn)
- o coalescing updates if they're numerous, such as running at the DEBUG runlevel
- o providing a notice if tor supports event types that nyx doesn't, and logging them as the 'UNKNOWN' type
- o condensing the label for runlevel event ranges further if they're identical for multiple types
- o options for:
- + saving logged events to a file, either via snapshots or running persistence
- + presenting torctl events of arbitrary runlevels
- + clearing the event log
- + maximum lines displayed from individual log entries
- + cropping based on time (requested by voidzero)
- o numerous performance improvements (for log prepopulation, determining the content length, caching for helper functions, etc)
- o minor bug fixes including:
- + added handling for BUILDTIMEOUT_SET events
- + dropping brackets from label if no events are being logged
- + merging tor and nyx backlogs according to timestamps
- + regex matches were failing for multiline log entries
- * change: using PidFile entry to fetch pid if available (idea by arma)
- * change: dropping irrelevant information from the header when not running as a relay
- * change: updated torctl version to the current git head release
- * change: measuring by bits for transfer rates (config can set it back to bytes)
- * change: home/end keys jump to start/end of all scroll areas (request by dun)
- * change: trimmed last couple letters off downloaded/uploaded labels (requested by asn)
- * change: dropping the 'frequentRefresh' parameter in favor of just doing refreshes when there's new graph stats available
- * fix: shifting bandwidth prepopulation by a sampling interval to account for tor's internal behavior (thanks to voidzero, nickm, arma, and Sebastian)
- * fix: making rdns resolution disabled by defaut due to possible connection disclosure to upstream resolver (thanks to Sebastian)
- * fix: skipping bandwidth prepopulation if not running as a relay (caught by arma)
- * fix: bandwidth stats above the graph weren't getting reset by sighups (caught by voidzero)
- * fix: config and connection panels were failing to parse a torrc with tabs (caught by voidzero)
- * fix: remapping torrc aliases so GETCONF calls don't fail (caught by voidzero)
- * fix: crashing error in bandwidth panel for wide screen displays (caught by cjb)
- * fix: changing debian arch to all rather than any (suggestion by murb)
- * fix: had case sensitive check for the torrc logging types (caught by asn)
- * fix: crashing error when ExitPolicy was undefined (caught by asn)
- * fix: dumping a stacktrace to /tmp and exiting immediately if exceptions are raised while redrawing
- * fix: connection panel failed to handle family entries identified by its nickname
- * fix: race condition between heartbeat detection and getting the first BW event
- * fix: refreshing after popups to make the interface seem more responsive
- * fix: crashing and minor display issues if orport was left unset
- * fix (10/7/10, r23463): crashing from type issue in the graph panel (caught by tomb)
-
-6/7/10 - version 1.3.6 (r22617)
-Rewrite of the first third of the interface, providing vastly improved performance, maintainability, and a few very nice features. This improved the refresh rate (which is also related to system resource usage) from 30ms to 4ms (an 87% improvement).
-
- * added: settings are fetched from an optional nyxrc (update rates, controller password, caching, runlevels, etc)
- * added: system tools util providing simplified usage, suppression of leaks to stdout, logging, and optional caching
- * added: wrapper for accessing TorCtl providing:
- o client side caching for commonly fetched relay information (fingerprint, descriptor, etc)
- o singleton accessor and convenience functions, simplifying interface code
- o wrapper allowing reattachment to new controllers (ie, nyx still works if tor's stopped then restarted - still in the works)
- * change: full rewrite of the header panel, providing:
- o notice for when tor's disconnected (with time-stamp)
- o lightweight redrawing (smarter caching and moved updating into a daemon thread)
- o more graceful handling of tiny displays
- * change: rewrite of graph panel and related stats, providing:
- o prepopulation of bandwidth information from the state file if possible
- o observed and measured bandwidth stats (requested by arma)
- o graph can be configured to display any numeric ps stat
- o third option for graphing bounds (restricting to both local minima and maxima)
- o substantially reduced redraw rate and making use of cached ps parameters (reducing call volume)
- * fix: preventing 'command unavailable' error messages from going to stdout, which disrupts the display (caught by sid77)
- * fix: removed -p option due to being a gaping security problem (caught by ioerror and nickm)
- * fix: crashing issue if TorCtl reports TorCtlClosed before the first refresh (caught by Tas)
- * fix: preventing the connection panel from initiating or resetting while in blind mode (caught by micah)
- * fix: ss resolution wasn't specifying the use of numeric ports (caught by data)
- * fix: parsing error when ExitPolicy is undefined (caught by Paul Menzel)
- * fix: revised sleep pattern used for threads, greatly reducing the time it takes to quit
- * fix: bug in defaulting the connection resolver to something predetermined to be available
- * fix: stopping connection resolution (and related failover message) when tor's stopped
- * fix: crashing issue when trying to resolve addresses without network connectivity
- * fix: forgot to join on connection resolver when quitting
- * fix: revised calculation for effective bandwidth rate to take MaxAdvertisedBandwidth into account
-
-4/8/10 - version 1.3.5 (r22148)
-Utility and service rewrite (refactored roughly a third of the codebase, including revised APIs and much better documentation).
-
- * added: centralized logging utility for handling nyx events, simplifying several parts of the interface
- * added: rewrote connection resolver, including:
- o fallback support for 'ss' and 'lsof' (requested by dun, John Case, and Christopher Davis)
- o readjusts resolution rate if calls prove burdensome
- o ui option for selecting mode of resolution
- * added: rewrote hostname resolver, including:
- o optional resolution via socket module (seems worse so disabled by default... pity)
- o non-blocking thread safety
- o extra error info
- * change: revised curses wrapper utilities (plus some hacks of the interface to accommodate it)
- * fix: issuing resets via RELOAD signal rather than sighup (thanks to Sebastian for pointing this out)
- * fix: taking into account potential None values when running get_option on arbitrary values (caught by pipe and enki)
- * fix: crashing problem if use_default_colors() calls failed (caught by sid77)
- * fix: removed workaround for mysterious torrc validation bug (was accidentally already fixed - thanks to dun for lending a test environment)
- * fix: size and time labels weren't doing integer truncation (rounding was unintended and frustratingly difficult to get rid of)
- * fix: hack to prevent log panel from drawing before being positioned
- * fix: nyx crashed if torrc was an empty file
- * fix: wasn't consistently bolding help keys
-
-3/7/10 - version 1.3.4 (r21852)
-Weekend bugfix bundle.
-
- * added: returned option to reload torrc and added option to issue a sighup
- * fix: header panel wasn't interpreting multi-line exit policies (caught by dun)
- * fix: substantial display bug when stripping comments and torrc is bigger than the panel (caught by Paul Menzel)
- * fix: deb specific hack for estimating the file descriptor limit was broken (caught by Paul Menzel)
- * fix: skip printing stack trace in case of keyboard interrupt
- * fix: updated listing of directory authorities (for tor version 0.2.1.24)
- * fix: several uncaught exceptions when the network consensus couldn't be fetched
- * fix: torrc comment stripping wasn't removing comments on the same lines as commands
- * fix: torrc validation was failing under some conditions for CSV values (like ExitPolicy)
- * fix (3/9/10, r21888): initializing error when processing family connections (caught by dun)
- * fix (4/7/10, r22134): scrubbing wrong data for inbound connections (caught by waltman)
-
-2/27/10 - version 1.3.3 (r21772)
-Hiding client/exit information to address privacy concerns and fixes for numerous issues brought up in irc.
-
- * added: scrubbing connection details of possible client and exit connections
- * change: providing file descriptions in README, updated known issues and future plans in TODO
- * change: added precision for bandwidth cap and burst if uneven values (requested by mete1989)
- * fix: HiddenService* parameters fetched via a special option (caught by dun, karsten, and grumpy3)
- * fix: workaround for os specific torrc validation bug - unfortunately haven't managed to repro yet so no fix (caught by grumpy3, Tas, and dun)
- * fix: checking for python curses bindings at startup (caught by dun)
- * fix: import error - TorCtl and socket missing from confPanel.py (caught by grumpy3)
- * fix: showing external ip in connection panel rather than local nat address (caught by mete1989)
- * fix: raised minimum width at which graph stats are displayed beside label (caught by dun)
- * fix: wasn't treating "accept *" and "reject *" as catch-all policies
- * fix: wasn't resizing graph panel properly in case of a sighup
-
-2/14/10 - version 1.3.2 (r21646)
-Refactoring goodness and bug fixes.
-
- * change: revised curses utilities to further simplify interface implementations
- * change: substantial layout changes (adding util and init packages) and including a copy of the gpl
- * fix: bug with handing of DST for accounting's 'Time to reset' (patch provided by waltman)
- * fix: header and connection panels weren't accounting for having ORListenAddress set (caught by waltman)
- * fix: crashing bug when shrank too much for scrollbars to be drawn
- * fix: couple system commands weren't redirecting their stderr to /dev/null
-
-2/7/10 - version 1.3.1 (r21580)
-Had enough of a siesta - getting back into development beginning with a rewrite if the starter.
-
- * added: made authentication a little smarter, using PROTOCOLINFO to autodetect authentication type and cookie location
- * change: made 'blind mode' (disables connection queries) a startup option rather than flag in source (request by Sebastian)
- * change: all log events (including nyx) are now set via character flags, with TorCtl events log as their own toggleable type
- * change: starting log label with runlevel events, condensing if logging a range
- * change: simplifying command line parsing via getopt
- * fix: blind mode now prevents all netstats (including connection counts and halting resolver thread), improving performance
-
-11/29/09 - version 1.3.0 (r21062)
-Weekend bugfix bundle.
-
- * added: most commands can be immediately executed from the help page (feature request by arma)
- * fix: truncating header's version fields if too long (caught by hexa)
- * fix: file descriptor dialog now provides a wider variety of error messages in case of failure
- * fix: offset issue in connections listing when scroll bar was visible
- * fix: removing family connections from listing when control port is closed
- * fix: preventing TorCtl startup issues from going to stdout (duplicates warnings)
-
-11/8/09 - version 1.2.2 (r20927)
-This will be the last update for a while since I'm about to start a new job.
-
- * added: including family relays on connections listing
- * added: file descriptors dialog (stats and scrollable listing)
- * change: logs warning if torrc fails to load
- * fix: size and time labels used in torrc are expanded for validation
- * fix: duplicate torrc entries weren't being detected if not erroneous
- * fix: crashing issue when cleaning up hostname cache
- * fix: stretching connection lines to fill full screen
-
-10/21/09 - version 1.2.1 (r20814)
-Substantial bundle of changes including torrc validation, improved nyx event logging, and numerous bug fixes.
-
- * added: verifies loaded torrc consistency against tor's actual state (gives warning and providing corrections)
- * added: checks for torrc entries that are irrelevant due to duplication (gives notices and highlights)
- * added: log provides TorCtl events (hack... so ugly...)
- * added: option for logging runlevel events of nyx, tor, or both
- * added: ARM-DEBUG event for netstat query time
- * added: providing progress bar when resolving a batch of hostnames
- * change: providing prompt notice when tor's control port is closed
- * fix: limiting pre-loaded events to this tor instance
- * fix: limits log entries used to pre-load events (big logs caused issue with startup time)
- * fix: properly closing TorCtl when quitting (was occasionally screwing up terminal)
- * fix: at several points TorCtlClosed exceptions were uncaught, causing crashes when tor was closed
- * fix: netstat and geoip failures were being noisy when tor quits
- * fix: bug in tracking connection counts if tor quits when paused
- * fix: sighup wasn't resetting all relevant internal variables
- * fix: pausing bypassed connection sorting
-
-10/16/09 - version 1.2.0 (r20798)
-Resolving a few small issues that bugged me.
-
- * change: using log file to pre-populate events if available
- * change: asks for confirmation when quitting
- * change: provides warning when tor's descriptors won't be updated
- * change: event log now allows for multi-line messages
- * fix: occasional crashing error concerning connection cache when paused
- * fix: issue with tracking connection times when paused or not visible
-
-9/28/09 - version 1.1.3 (r20678)
-More issues discussed on irc.
-
- * fix: made netstat lookups a best-effort service, separate from draw thread (caught by arma and StrangeCharm)
- * fix: using ps as final fallback if otherwise unable to determine pid (suggested by Sebastian)
- * fix: appends tor's pwd if torrc path is relative (caught by arma)
-
-9/27/09 - version 1.1.2 (r20674)
-Few issues discussed on irc.
-
- * added: changelog and cleaned up todo documents (requested by arma)
- * added: option in controller.py to disable connection panel (feature request by Sebastian)
- * fix: failed to work on osx and bsd due to crashes after failed system calls (caught by Sebastian and Christopher Davis)
- * fix: reloading static data in bandwidth panel after HUP (caught by hexa)
- * fix: couple alignment issues with the connection listings
-
-9/23/09 - version 1.1.1 (r20655)
-Bundle of semi-low hanging fruit, including a few issues discussed on irc.
-
- * added: showing extra parameters in connection listings if room's available
- * added: identifying directory server connections
- * change: providing an error message if running an incompatible python version (issue spotted by arma)
- * change: giving nyx a version to help in bug reports
- * change: minor tweak to the wording of a faq entry (requested by Sebastian)
- * fix: wasn't accounting for RelayBandwidthRate/Burst in effective bandwidth (caught by hexa and arma)
- * fix: timing issue when shutting down (caught by arma)
- * fix: couple issues with connection time being tracked when paused
- * fix: preserving old results when netstat fails
-
-9/6/09 - r20493
-Several substantial features (last tasks for nyx's todo list).
-
- * added: scroll bars for connections listing and event log
- * added: made log scrollable (feature request by StrangeCharm)
- * added: regular expression filtering for log (feature request by StrangeCharm)
- * added: connection uptimes (time since connection was first made)
- * added: identifying client from server connections and providing popup for client circuits
- * added: graph for system resource usage (cpu/memory)
- * change: removed cursor toggling option for connection page
- * fix: minor display issue when changing event types
-
-8/22/09 - r20354
-Several fixes and changes, mostly concerning the graph panel and making better use of screen real estate.
-
- * added: labeled the graph's x-axis and reordered the information with changes omitted for small (tty sized) terminals (feature request by StrangeCharm)
- * added: doubling up contents of header panel in case of wide screens to take advantage of added space
- * added: exit policy to header if a wide display
- * change: added precision for bandwidth measurements
- * change: using "orconn-status" info to eliminated ambiguity in identifying inbound connection fingerprints (clever idea, but had very little impact)
- * fix: when sighup signal is received reloads torrc and internal state (caught by StrangeCharm)
- * fix: probable resolution of nasty concurrent bug concerning access to connection cache
- * fix: minor issues concerning connection panel including graph widths and miscalculating local maxima
- * fix: short circuits fingerprint cache when looking up localhost descriptor (preventing lookup failures)
- * fix: minor issues with connection panel and description popups when no connections are available
- * fix: descriptor popup wasn't determining if the first visible line belonged to an encryption block
- * fix: made interface more resilient against arbitrary resizing (such as during popups)
-
-8/17/09 - r20331
-Work done over this last week.
-
- * added: popup for raw consensus description
- * added: total bandwidth measurement (feature request by StrangeCharm)
- * added: connection entry for lookup of local consensus data
- * change: widened graphs to utilize full screen width (clever idea by StrangeCharm)
- * change: preserving runtime and pid when shutting down
- * change: few tweaks to the readme
- * fix: joining on worker daemon threads to exit gracefully (had a noisy race condition)
- * fix: using BW events to keep connection count graph in sync with bandwidth graph
- * fix: can now support graphs of multiple sizes
-
-8/8/09 - r20233
-Rewrote graph panel so it can handle any real time statistics.
-
- * added: option to graph connection counts (feature request by phobos)
- * added: custom graph bounds (global or local maxima)
-
-8/4/09
-Announced the project on the or-talk mailing list today which spurred an interview with Brenno Winter (who works on the cleverly named Little Sister project). The interview is available here.
-
-8/3/09 - r20210
-Added start of a faq to the readme in preparation for announcement on or-talk.
-
-7/30/09 - r20198
-Work done over the trip.
-
- * added: customizable update interval for bandwidth graph (feature request by StrangeCharm)
- * change: noted new project page in the readme (www.atagar.com/arm)
- * change: added word wrapping to conf panel
- * change: added function for custom popup menus
- * change: logs error message when required event types are unsupported rather than throwing an exception
- * change: using different screenshot images
- * fix: resolved issue that caused monitor to think tor was resumed when quit
- * fix: bug with panel utility's resize detection
- * fix: resorts connections after NEWDESC and NEWCONSENSUS events
- * fix: forgetting to to resume monitor at multiple points after a temporary pause
- * fix: minor refactoring based on suggestions from pylint (unused imports and such)
-
-7/22/09 - r20115
-Another small grab bag update.
-
- * added: version status to header panel
- * change: noted "Common *nix commands including: ps, pidof, host, and netstat" among requirements in readme
- * change: took some tricks from Mike's ConsensusTracker to further improve match rate
- * fix: type mismatch that greatly diminished fingerprint matching
- * fix: accidentally used idhash rather than idhex for fingerprints when updating cache with the contents of a NEWDESC event
-
-7/21/09 - r20100
-Quick fixes based on discussion on irc.
-
- * change: provides warning when geoip database is unavailable (thanks to SwissTorExit and karsten)
- * fix: missing import for the socket module
-
-7/20/09 - r20096, r20097, r20098
-Couple fixes so nyx plays nicely in the case of multiple running tor instances.
-
- * fix: can now deal with multiple tor instances: checks pid of process with the open control port
- * fix: if only one tor process is running use that pid (netstat fails if running as a different user
-
-7/19/09 - r20087, r20090
-Last substantial feature on my to-do list.
-
- * added: connections can be selected to view consensus details (very spiffy!)
- * added: listing selection is by menu rather than cycling
- * fix: couple bugs, the most interesting being when netstat can't resolve a connections listing (spotted by phobos)
-
-7/18/09 - r20078, r20079
-Miscellaneous fix and feature batch.
-
- * added: relay's flags to the header
- * added: listing by relay nickname
- * added: additional event aliases and option for NEWCONSENSUS
- * added (phobos): screenshot of nyx in action so people can see what it looks like
- * change: use constant "Listing" label for sorting rather than current view
- * change: removed 'reload torrc' option (deceptive and useless)
- * fix: updates cached consensus mappings with NEWDESC and NEWCONSENSUS events
-
-7/14/09 - r20016
-Resolved a few quick bugs:
-
- * fix: added fingerprint lookup cache to resolve substantial performance issue
- * fix: hostname resolution progress accounts for newly added entries (no more negative progress)
- * fix: resolved bug that prevented nyx from starting if too small
- * fix: ordering issue when sorting unresolved ip addresses
-
-7/11/09 - r19975
-Connections panel can now list by IP, hostname, or fingerprint: reverse resolution was easy, but comparing three different implementations and making it non-blocking with a pausable thread-pool backend? Not so much.
-
-7/8/09 - r19953, r19957
-Just got back from Toorcamp. Preliminary connection page and miscellaneous additions.
-
- * added: basic connection listing page (using netstat results)
- * added: connection listing now has user configurable sort functionality (it's actually pretty spiffy: supports secondary and tertiary sub-keys)
- * added: 'addfstr' to util which allows for embedded formatting tags (VERY helpful)
- * added: help shows page's current settings
- * added: made bandwidth panel toggleable
- * added: avg bandwidth to bottom of panel
- * fix: prevented header from being paused on page change
- * fix: prevented bandwidth accounting events from being lost when paused
-
-6/14/09 - r19716
-Decently big batch of feature additions and bug fixes.
-
- * added: second page that presents torrc with syntax highlighting, optional comment stripping, etc
- * added: ps sampling (cpu/memory usage, pid, and uptime)
- * added: help popup with page controls
- * fix: corrected issue that caused periodic refreshing to fail
- * fix: accounting reset time takes into account DST
- * fix: make accounting input and header pausable
-
-6/10/09 - r19708, r19709
-Couple quick changes.
-
- * change: removed '--path-to-torctl' startup option
- * fix: accounting 'time to reset' now includes gmt to local conversion
-
-6/7/09 - r19646, r19655, r19656
-Couple features.
-
- * added: svn external inclusion of TorCtl
- * added: bandwidth panel now displays accounting data if set
-
-6/6/09 - r19636, r19637
-Quick change based on discussion on irc.
-
- * added: command line argument to specify location of TorCtl without changing Python path first (feature request by phobos)
-
-6/5/09 - r19629
-Substantial refactoring changes.
-
- * change: switched from a functional to an OO implementation which further simplified the controller: as an added plus this should make adding additional 'pages' trivial
- * change: offloaded resizing to the curses wrapper
- * fix: dealt with another curses wtf bug where panels wouldn't repaint unless done in a specific order
-
-6/4/09 - r19626
-Tested and corrected formatting for all event types except STREAM and STREAM_BW (not sure how to make those occur...).
-
-6/2/09 - r19615, r19619, r19620
-Introduced layer of abstraction from curses, simplifying its use and greatly improving reliability.
-
- * added: introduced wrapper to hide curses ugliness which greatly simplified interface code
- * added: notice when relay's been silent for five seconds (based on BW events so probably due to Tor being closed), another idea by karsten
- * changed: unchecked events have stubs to present information and provide debugging information in case of type mismatch
- * fix: all problems with resizing: it's now rock solid
-
-5/29/09 - r19580, r19594
-Fixes for several rather sinister reliability problems:
-
- * added: allows logged events to be changed while running (suggested feature by karsten) and experimenting with a more modular design
- * fix: added non-blocking reentrant locks to fix concurrency errors that caused chaotic terminal glitches (such as switching to a Chinese character set)
- * fix: now fully handles resizing (including vertical)
- * fix: using new capabilities in TorCtl including cookie authentication and disabling logging
- * fix: bandwidth graph bug when paused
- * fix: occasionally refreshes static content in case of graphical hiccups
- * fix: added workaround for obscure curses caching bug that prevented portions of the screen from being redrawn
- * fix: bug preventing initialization if too small
-
-5/25/09 - r19567
-Few small tweaks including:
-
- * added: tiny shell script to alias starting
- * added: more informative error message if TorCtl isn't available
- * change: defaultly logged events
- * change: make inclusion of 'unknown' events toggleable
-
-5/24/09 - r19548, r19549, r19550, r19551
-Initial version of nyx (terminal relay status monitor). Repository set up by arma.
-
- * fix: bug concerning undefined exit policy
- * fix: resolved issue that prevented monitor from functioning in terminals without curs_set support
-
-
diff --git a/docs/change_log.rst b/docs/change_log.rst
index 9613a87..570f1a7 100644
--- a/docs/change_log.rst
+++ b/docs/change_log.rst
@@ -7,6 +7,27 @@ unreleased. For a monthly report on work being done see my `development log
* :ref:`versioning`
* :ref:`unreleased`
+* :ref:`version_1.4.5`
+* :ref:`version_1.4.4`
+* :ref:`version_1.4.3`
+* :ref:`version_1.4.2`
+* :ref:`version_1.4.1`
+* :ref:`version_1.4.0`
+* :ref:`version_1.3.7`
+* :ref:`version_1.3.6`
+* :ref:`version_1.3.5`
+* :ref:`version_1.3.4`
+* :ref:`version_1.3.3`
+* :ref:`version_1.3.2`
+* :ref:`version_1.3.1`
+* :ref:`version_1.3.0`
+* :ref:`version_1.2.2`
+* :ref:`version_1.2.1`
+* :ref:`version_1.2.0`
+* :ref:`version_1.1.3`
+* :ref:`version_1.1.2`
+* :ref:`version_1.1.1`
+* :ref:`version_1.1.0`
.. _versioning:
@@ -39,3 +60,777 @@ Unreleased
The following are only available within Nyx's `git repository
<download.html>`_.
+.. _version_1.4.5:
+
+Version 1.4.5 (April 28th, 2012)
+--------------------------------
+
+Software isn't perfect and Nyx is no exception. This is a bugfix release that
+corrects most issues that users have reported over the last several months.
+This did not include new features, but did have several changes that were
+important for continued interoperability with tor.
+
+ * **Startup**
+
+ * Check auth cookie is 32 bytes before reading (:trac:`4305`)
+ * Crash when tor log file contains leap year dates (:trac:`5265`)
+ * Crash when using unrecognized authentication methods like 'SAFECOOKIE'
+
+ * **Logging**
+
+ * Path issue when saving snapshot of the logs (`issue <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646080>`_)
+
+ * **Connections**
+
+ * Notify when DisableDebuggerAttachment prevents connection lookups
+ * Better validation of circuit-staus output (:trac:`5267`)
+ * Help information for 'enter' mislabeled (:trac:`4621`)
+ * Circuits failed to show when connection information was unavailable
+
+ * **Torrc**
+
+ * Validation was case sensitive (:trac:`4601`)
+ * Misleading DirReqStatistics warnings with new tor versions (:trac:`4237`)
+
+ * **Curses**
+
+ * Major terminal glitches related to the import of the readline module
+ * Config option to work around ACS failures
+
+ * **Cross-Platform Support**
+
+ * **OSX/BSD:** support for pwd lookups (:trac:`4236`)
+ * **OSX/BSD:** ps checks couldn't detect tor process
+ * **OpenBSD:** only use lsof for connecion lookups
+ * **Linux:** proc utils didn't account for big-endian architectures (:trac:`4777`)
+ * **Debian:** misleading warning about default Logging value (:trac:`4602`)
+ * **RedHat:** specify python verion in rpm dependencies
+
+.. _version_1.4.4:
+
+Version 1.4.4 (September 25th, 2011)
+------------------------------------
+
+Besides the normal bug fixes and minor features, this release introduces the
+**control interpreter**. This is a new prompt that gives raw control port
+access with tab completion, history scrollback, and irc-style command.
+
+ * **Startup**
+
+ * ControlSocket support (:trac:`3638`)
+ * Notify when tor or nyx are running as root
+ * Take chroot into consideration for auth cookie path
+ * Don't start wizard when there's a tor process running, even if we can't connect to it
+ * Try all authentication methods rather than just the first (:trac:`3958`)
+
+ * **Graph**
+
+ * Crash when pausing if we showed accounting stats
+
+ * **Logging**
+
+ * Skip reading from malformed tor log files
+ * Unable to log GUARD events
+
+ * **Connections**
+
+ * Added dialogs with exit usage by port and guard/bridge usage by locale
+ * Crash when shutting down while relay addresses are resolved
+ * Crash when CIRC event occured while caching attached relays
+
+ * **Configuration Editor**
+
+ * Optional system wide torrc integration (:trac:`3629`)
+ * We wrote a blank torrc when 'GETINFO config-text' was unavailable
+ * Hotkey for saving the torrc conflicted with the relay setup wizard
+ * Crash when pressing 'enter' if never attached to tor
+
+ * **Wizard**
+
+ * Quit wizard when the user presses 'q' rather than just esc (:trac:`3995`)
+
+ * **Curses**
+
+ * Force manual redraw when user presses ctrl+L (:trac:`2830`)
+ * Quitting could cause unclean curses shutdown
+ * Periodically redraw content to prevent terminal issues from persisting
+
+ * **Website and Manual**
+
+ * Moved downloads to archive.torproject.org for ssl
+ * Incorrect nyxrc path in man page
+
+ * **Hotfix release** (September 29th, 2011) corrected the following...
+
+ * Crash when esc was pressed in the interpreter prompt (:trac:`4098`)
+ * Deduplicationg couple common log messages (:trac:`4096`)
+ * Ctrl+L redraw wasn't always being triggered (:trac:`2830`)
+ * Dropped gtk/cagraph requirements
+
+.. _version_1.4.3:
+
+Version 1.4.3 (July 16th, 2011)
+-------------------------------
+
+This completes the codebase refactoring that's been a year in the works and
+provides numerous performance and usability improvements. Most notably a
+**setup wizard for new relays** and **menu interface**. This release also
+includes gui prototype, performance improvements, and support for Mac OSX.
+
+ * **Startup**
+
+ * Renamed our process from "python src/starter.py" to "nyx"
+ * Moved connection negotiation into torctl (:trac:`3409`)
+ * Avoid excessive torctl memory allocation, lowering memory usage by 2.5 MB (12%) (:trac:`3406`)
+ * More descriptive controller password prompt
+ * Crash when a sighup crashes tor (:trac:`1329`)
+ * Crash from unjoined threads during shutdown
+ * Crash when pressing ctrl+c due to improper daemon shutdown
+ * Crash when using the --debug argument with old tor versions
+ * Crash when tor's socks port was used rather than the control port (:trac:`2580`)
+
+ * **Header**
+
+ * Requests a new identity when the user presses 'n'
+ * Option to reconnect when tor's restarted
+ * Provides file descriptor usage when tor is running out
+ * Dropped file descriptor popup (both unused and inaccurate)
+ * Indicate when tor's shut down in client mode
+
+ * **Graph**
+
+ * Pre-populates total bandwidth uploaded/downloaded
+ * More intuitive mode toggling for resizing the graph
+ * Intermediate graph bounds inaccurate or missing
+
+ * **Connections**
+
+ * Reintroduced descriptor popup
+ * Provide nickname for circuit connections
+ * Shut down torctl zombie connections to the control port (:trac:`2812`)
+ * Misparsed circuit paths for tor versions prior to 0.2.2.1
+ * Crash when pressing enter on a blank connection page (:trac:`3128`)
+ * Crash when querying locales if geoip information was unavailable
+
+ * **Configuration Editor**
+
+ * Using SAVECONF rather than writing torrc directly
+ * Edited config entries didn't display new value
+ * Using extra horizontal space for the configuration values
+ * Fallback configuration descriptions weren't being installed
+ * Misparsed config option types for old tor versions
+
+ * **Torrc**
+
+ * Validation false positives for autogenerated Nickname values
+
+ * **Curses**
+
+ * Option to exclude panels from the interface
+ * Option to override all displayed color
+ * Speeding nyx's startup time from 0.84s to 0.14s (83% improvement by fetching connections in background)
+ * Speeding nyx's shutdown time form ~1s to instantaneous (:trac:`2412`)
+ * Display was cropped by an extra cell
+ * Closing all message prompts when a key is pressed
+ * Crash when cropping whitespace-only strings
+
+ * **Manual**
+
+ * Hardcoded home path rather than ~
+
+ * **Website**
+
+ * Moved nyx's codebase to git, with helper scripts to replace svn:externals and export
+
+ * **Cross-Platform Support**
+
+ * **OSX:** tor's pid couldn't be resolved, breaking much of nyx
+ * **OSX:** only use lsof for connecion lookups
+
+.. _version_1.4.2:
+
+Version 1.4.2 (April 4th, 2011)
+-------------------------------
+
+This release re-implements the connection panel. Besides maintainability, this
+includes several features like circuit paths, application connections, and
+better type identification.
+
+ * **Startup**
+
+ * Faster startup by lazy loading 'address => fingerprint' mappings
+ * Dropped warning suggesting users set FetchUselessDescriptors
+ * Failed connection attempts caused zombie connections (:trac:`2812`)
+ * nyxrc option 'startup.dataDirectory' didn't work
+ * Crash when using python 2.5 due to missing bin built-in
+ * Crash when family entries have a trailing comma (:trac:`2414`)
+ * Crash from uncaught OSError when making directories failed
+ * Crash joining with torctl thread during shutdown
+ * Crash citing 'syshook' during shutdown
+
+ * **Header**
+
+ * Displayed wrong address if changed since first started (:trac:`2776`)
+
+ * **Graph**
+
+ * Dropping use of the state file for bandwidth totals due to having just a day's worth of data
+
+ * **Connections**
+
+ * Listing active circuits
+ * Identifying connection applications (firefox, vidalia, etc)
+ * Identifying common port usage for exit connections
+ * Display 'local -> internal -> external' address when there's room
+ * Address order inverted for SOCKS and CONTROL connections
+ * Better identifying client and directory connections
+ * Better disambiguating multiple relays with the same address
+ * Better space utilization for a variety of screen sizes
+ * Detail popup no longer freezes the rest of the display
+ * Detail popup now uses the full screen width and is dynamically resizable
+ * Take DirServer and AlternateDirAuthority into account to determine authorities
+ * Didn't recognize 172.* address as a private IP range
+ * Renamed the 'APPLICATION' type to 'SOCKS'
+ * Crash due to unknown relay nicknames
+
+ * **Configuration Editor**
+
+ * Hiding infrequently used config options by default
+ * Better caching, reducing CPU use when scrolling by 40%
+
+ * **Torrc**
+
+ * Validation requires 'GETINFO config-text' from Tor verison 0.2.2.7 (:trac:`2501`)
+ * Line numbers for torrc issues were off by one
+ * Allowed sorting by 'is default' attribute
+
+ * **Manual**
+
+ * Instructions for setting up authentication in the readme
+
+ * **Cross-Platform Support**
+
+ * **BSD:** broken resolver availability checks caused connections to not show up for several seconds
+
+ * **Hotfix release** (April 4th, 2011) - crash when parsing multiple spaces in the HiddenServicePort
+ * **Hotfix release** (April 6th, 2011) - installing missed new files
+ * **Hotfix release** (April 13th, 2011) - crash when requesting our flags failed
+
+.. _version_1.4.1:
+
+Version 1.4.1 (January 7th, 2011)
+---------------------------------
+
+Platform specific enhancements including BSD compatibility and greatly improved
+performance on Linux.
+
+ * **Startup**
+
+ * '--debug' argument for dumping debugging information
+ * Centralizing nyx resources in ~/.nyx
+ * Expanding relative authentication cookie paths
+ * Startup forked rather than execed our process
+ * Crash with invlid paths including spaces and dashes
+ * Crash when text input fields shown with python 2.5
+
+ * **Header**
+
+ * Displaying nyx's cpu usage
+ * Updating uptime each second
+ * More accurate measurement of tor cpu usage
+
+ * **Logging**
+
+ * No date dividers when scrollbars not present
+
+ * **Connections**
+
+ * Labeling use of our socks port as client connections
+ * Provide UDP connections to include DNS lookups
+ * Some resolvers failed when pid was unavailable
+ * Dropping locale for internal connections
+ * Skipping internal -> external address translation for private addresses
+ * Initially shown connections often lacked the pid
+ * Connection resolution failed when tor ran under a different name
+ * Crash when presenting an undefined nickname
+
+ * **Configuration Editor**
+
+ * Summary descriptions of config options
+ * Fallback manual information when tor's man page is unavailable
+ * Crash when querying hidden service parameters
+
+ * **Torrc**
+
+ * Reloading torrc contents when there's a sighup
+ * Validation false positives when GETCONF response has spaces
+
+ * **Cross-Platform Support**
+
+ * **Linux:** retrieving process information directly from proc, dramatically improving performance
+ * **BSD:** pid resolution via pgrep and sockstat
+ * **BSD:** connection resolution via sockstat, procstat, and lsof
+ * **BSD:** auto-detecting path prefixes for FreeBSD jails
+
+ * **Hotfix release** (January 11th, 2011) corrected the following...
+
+ * Including platform, python version, and nyx/tor configurations in debug dumps
+ * Crash when initial ps lookup fails
+
+ * **Hotfix release** (January 12th, 2011) - properly parse ps results with decimal seconds
+ * **Hotfix release** (January 15th, 2011) - adding --docPath argument to help Gentoo ebuilds (`issue <https://bugs.gentoo.org/349792>`_)
+
+.. _version_1.4.0:
+
+Version 1.4.0 (November 27th, 2010)
+-----------------------------------
+
+**New page to manage tor's configuration**, along with several revisions in
+preparation for being included in Debian.
+
+ * **Startup**
+
+ * Moved installation location to /usr/share/nyx
+ * Replaced deb/rpm build resources with helper scripts
+ * Removing autogenerated egg file from deb build
+ * Including dh_pysupport flag to recognize private python module
+ * Dropping references to the controller password after startup
+ * Continued running in a broken state after ctrl+c due to non-daemon threads
+
+ * **Logging**
+
+ * Added scrollbar and scrolling by displayed content rather than line numbers
+ * Disabling deduplications for long logs to avoid freezing interface
+ * Crash when displaying empty torrc contents
+
+ * **Torrc**
+
+ * Validation notice when tor's present configuration doesn't match the torrc
+ * Validation notice when torrc entry matches its default value
+ * Validation didn't recognize 'second' and 'byte' arguments
+ * Parsing multiline torrc entries supported in tor 0.2.2.17
+ * Buggy scrolling when comments were stripped
+
+ * **Curses**
+
+ * Popups more resilient to the interface being resized
+ * Using curses.textpad to add support in text fields for arrow keys, emacs keybindings, etc
+ * Rounding error determining our scrollbar size
+
+ * **Manual**
+
+ * Incorrect man path for the sample nyxrc
+
+ * **Hotfix release** (November 30th, 2010) - installer crashed creating temporary directory for compressed man page
+
+.. _version_1.3.7:
+
+Version 1.3.7 (October 6th, 2010)
+---------------------------------
+
+Expanded log panel, installer, and deb/rpm builds.
+
+ * **Startup**
+
+ * Installation and removal scripts
+ * Configurable path prefix for chroot jails
+ * Using PidFile to get the pid if available
+ * Dump stacktrace to /tmp when exceptions are raised while redrawing
+ * Crash if ORPort left unset
+
+ * **Header**
+
+ * Caching for static GETINFO parameter
+ * Drop irrelevant information when not running as a relay
+
+ * **Graph**
+
+ * Incremental y-axis measurements
+ * Option for graph resizing
+ * Measuring transfer rates in bits by default
+ * Use update interval that matches tor's state file when prepopulating
+ * Skip bandwidth prepopulation if not running as a relay
+ * Properly update bandwidth stats during sighup
+ * Race condition between heartbeat and first BW event
+ * Crash when displayed in especially wide screens
+
+ * **Logging**
+
+ * Dividers for the date, bordering events from the same day
+ * Deduplicating log entries
+ * Option to clear the event log
+ * Option for saving logged events, either as a snapshot or persistently
+ * Support cropping events based on time
+ * Redrawing with each event when at debug runlevel caused high cpu usage
+ * Notice if tor supports event types that nyx doesn't
+ * Better consolidation of identical runlevel labels
+ * Performance improvements for log preopulation, caching, etc
+ * Merging tor and nyx events by timestamp when prepopulating
+ * Regex filtering broken for multiline log entries
+ * Drop brackets if no events are being logged
+
+ * **Connections**
+
+ * Disabling DNS resolution to prevent leaking information to our resolvers
+ * Failed to handle family entries identified by nickname
+
+ * **Torrc**
+
+ * Failed to parse torrc files with tabs
+ * Remapping torrc aliases so GETCONF calls don't fail
+ * Checking torrc logging types was case sensitive
+ * Crash when ExitPolicy was undefined
+
+ * **Curses**
+
+ * Jumping to start/end of scrolling area when pressing home or end
+ * Refreshing after popups to make the interface more responsive
+
+ * **Manual**
+
+ * Created man page
+
+ * **Cross-Platform Support**
+
+ * **Linux:** scripts and resources for making debs and rpms
+ * **Debian:** change debian arch from any to all
+
+ * **Hotfix release** (October 7th, 2010) - crash with TypeError in the graph panel
+
+.. _version_1.3.6:
+
+Version 1.3.6 (June 7th, 2010)
+------------------------------
+
+Performance improvements and a few nice features. This improves the refresh
+rate (coinciding with a drop of cpu usage) from 30ms to 4ms, an 87%
+improvement.
+
+ * **Startup**
+
+ * Faster quitting by no longer waiting on sleeping threads
+ * Caching commonly fetched relay information (fingerprint, descriptor, etc)
+ * Systems util to standardize usage, add caching, prevent stdout leakage, etc
+ * Optionally fetch settings from a nyxrc file
+ * Wrapper for TorCtl providing singleton accessor and better API
+ * Drop support for the '-p' argument for security reasons
+ * Crash if torctl reports TorCtlClosed before the first refresh
+
+ * **Header**
+
+ * Support reattaching when tor's stopped then restarted
+ * Notify when tor's disconnected
+ * Better handling of tiny displays
+ * Better caching and background updating
+
+ * **Graph**
+
+ * Prepopulate bandwidth information from stat file when available
+ * Provide observed and measured bandwidth stats
+ * Option to restrict graph bounds to local minima and maxima
+ * Account for MaxAdvertisedBandwidth in the effective bandwidth rate
+ * Better caching and reduced redraw rate
+
+ * **Connections**
+
+ * Suspend connection resolution when tor's stopped
+ * Don't initialize while in blind mode
+ * ss resolution didn't specifying use of numeric ports
+ * Issue defaulting connection resolver to one we predetermined to be available
+ * Crash when trying to resolve addresses without network connectivity
+ * Crash due to unjoined connection resolution thread when quitting
+
+.. _version_1.3.5:
+
+Version 1.3.5 (April 8th, 2010)
+-------------------------------
+
+Handful of small fixes amid codebase refactoring.
+
+ * **Startup**
+
+ * Issue resets via RELOAD signal rather than SIGHUP
+ * Crash due to unexpected None values when calling GETCONF
+
+ * **Logging**
+
+ * Panel sometimes drew itself before properly positioned while starting up
+
+ * **Connections**
+
+ * Added lsof and ss connection resolvers
+ * Option for selecting mode of resolution
+ * Reduce connection resolution rate if calls are burdensome
+ * Optional dns resolution via socket module (disabled by default due to worse performance)
+
+ * **Curses**
+
+ * Crash when use_default_colors() fails
+ * Help keys weren't consistently bolded
+
+.. _version_1.3.4:
+
+Version 1.3.4 (March 7th, 2010)
+-------------------------------
+
+Bugfix bundle for a handful of issues.
+
+ * **Startup**
+
+ * Crash when user pressed ctrl+c due to uncaught KeyboardInterrupt
+
+ * **Header**
+
+ * Multi-line exit policies weren't interpreted correctly
+
+ * **Connections**
+
+ * Crash when consensus couldn't be retrieved
+
+ * **Torrc**
+
+ * Display bug when stripping comments if torrc is longer than the screen
+ * Stripping didn't include inline comments
+ * Validation failed for some CSV values like ExitPolicy
+
+ * **Cross-Platform Support**
+
+ * **Debian:** file descriptor limit estimation incorrect
+
+ * **Hotfix release** (March 9th, 2010) - crash while starting up processing family connections
+ * **Hotfix release** (April 7th, 2010) - sensitive data not scrubbed for inbound connections
+
+.. _version_1.3.3:
+
+Version 1.3.3 (February 27th, 2010)
+-----------------------------------
+
+Handful of issues brought up on irc, most notably scrubbing the interface of
+sensitive information.
+
+ * **Startup**
+
+ * Checking for curses built-ins before starting up
+
+ * **Graph**
+
+ * Added precision for bandwidth cap and burst
+ * Not resized properly during a sighup
+
+ * **Connections**
+
+ * Scrubbing sensitive client/exit information to address privacy concerns
+ * Showing external address rather than local nat
+
+ * **Manual**
+
+ * Providing file descriptions in the README
+ * Crash due to missing sockset and torctl imports
+
+.. _version_1.3.2:
+
+Version 1.3.2 (February 14th, 2010)
+-----------------------------------
+
+Small bugfix bundle.
+
+ * **Header**
+
+ * Couple system commands weren't suppressing stderr
+ * Didn't account for ORListenAddress in the address we displayed
+
+ * **Graph**
+
+ * Mishandling DST for accounting's 'Time to reset'
+
+ * **Manual**
+
+ * Include copy of the GPL
+
+ * **Curses**
+
+ * Crash when too small for scrollbars to be drawn
+
+.. _version_1.3.1:
+
+Version 1.3.1 (February 7th, 2010)
+----------------------------------
+
+Small bugfix bundle, mostly focused on improving initialization.
+
+ * **Startup**
+
+ * Use PROTOCOLINFO to autodetect supported authentication and cookie location
+ * Added the '--blind' argument to prevent connection lookups
+ * Added the '--event' argument to select events to log by character flags
+
+ * **Logging**
+
+ * Condense event labels for runlevel ranges
+
+.. _version_1.3.0:
+
+Version 1.3.0 (November 29th, 2009)
+-----------------------------------
+
+Small bugfix bundle.
+
+ * **Startup**
+
+ * Commands can be invoked directly from the help popup
+ * Suppress torctl startup issues from going to stdout
+
+ * **Header**
+
+ * Truncating version if too long
+ * Error messaging when file descriptor dialog fails
+
+ * **Connections**
+
+ * Offset glitch when scrollbar is visible
+ * Drop family entries if control port connection is closed
+
+.. _version_1.2.2:
+
+Version 1.2.2 (November 8th, 2009)
+----------------------------------
+
+Small bugfix bundle before starting a new job.
+
+ * **Header**
+
+ * File descriptor popup providing stats and a scrollable listing
+ * Crash when cleaning up hostname cache
+
+ * **Connections**
+
+ * Include family relays in the connection listing
+ * Stretching connection lines to fill the full screen
+
+ * **Torrc**
+
+ * Warning if torrc fails to load
+ * Validation usually weren't detecting duplicates
+
+.. _version_1.2.1:
+
+Version 1.2.1 (October 21st, 2009)
+----------------------------------
+
+Torrc validation, improved event logging, and more.
+
+ * **Startup**
+
+ * Crash due to improperly closing torctl when quitting
+ * Crash due to uncaught TorCtlClosed exceptions
+
+ * **Header**
+
+ * Notice when control port is closed
+ * Progress bar when resolving a batch of hostnames
+ * Information left inaccurate after sighup
+
+ * **Connections**
+
+ * Incorrect connection counts when paused
+ * Noisy netstat and geoip failures when tor quit
+ * Sorting broken when unpaused
+
+ * **Torrc**
+
+ * Verify that the torrc matches tor's actual state
+ * Check for torrc entries that are irrelevant due to being duplicates
+
+ * **Logging**
+
+ * Support logging nyx and torctl events
+ * Only prepopulate events from this tor instance
+ * Limit number of prepopulated entries to prevent long startup time
+
+.. _version_1.2.0:
+
+Version 1.2.0 (October 16th, 2009)
+----------------------------------
+
+Small bugfix bundle.
+
+ * **Startup**
+
+ * Ask for confirmation when quitting
+
+ * **Logging**
+
+ * Prepopulation using tor's log file
+ * Support multi-line log messages
+
+ * **Connections**
+
+ * Connection times became inaccurate when paused or not visible
+ * Crash due to connection cache when paused
+
+.. _version_1.1.3:
+
+Version 1.1.3 (September 28th, 2009)
+------------------------------------
+
+Small bugfix bundle.
+
+ * **Startup**
+
+ * Fall back to ps to determine tor's pid
+
+ * **Connections**
+
+ * Query connections in the background rather than as part of rendering
+
+ * **Torrc**
+
+ * Expand relative torrc paths
+
+.. _version_1.1.2:
+
+Version 1.1.2 (September 27th, 2009)
+------------------------------------
+
+Small bugfix bundle.
+
+ * **Graph**
+
+ * Reloading static information after SIGHUP
+
+ * **Manual**
+
+ * Added a changelog
+
+ * **Cross-Platform Support**
+
+ * **OSX/BSD:** crash when system calls failed
+
+.. _version_1.1.1:
+
+Version 1.1.1 (September 23rd, 2009)
+------------------------------------
+
+Small bugfix bundle.
+
+ * **Startup**
+
+ * Notify if python version is incompatible
+ * Added the '--version' argument to help with bug reports
+
+ * **Graph**
+
+ * Didn't account for RelayBandwidthRate/Burst in effective bandwidth
+
+ * **Connections**
+
+ * Provide additional connection information when room's available
+ * Identifying directory connections
+ * Preserving old listing when netstat fails
+
+.. _version_1.1.0:
+
+Version 1.1.0 (September 6th, 2009)
+-----------------------------------
+
+Initial release of Nyx.
1
0
commit b44707df820368f10147395b72ab5fb98ca9d4d2
Author: Damian Johnson <atagar(a)torproject.org>
Date: Tue Oct 11 10:05:06 2016 -0700
Fill in download page
The link he have for ArchLinux no longer works and I'm not finding a new one.
Also no PyPI page yet. But otherwise just filling in information for our last
release.
---
docs/download.rst | 80 +++++++++++++++++++++----------------------------------
1 file changed, 31 insertions(+), 49 deletions(-)
diff --git a/docs/download.rst b/docs/download.rst
index 1673565..fa0cc60 100644
--- a/docs/download.rst
+++ b/docs/download.rst
@@ -64,22 +64,22 @@ Download
:header-rows: 0
* - .. image:: /_static/section/download/pypi.png
- :target: https://pypi.python.org/pypi/stem/
+ :target: https://pypi.python.org/pypi/nyx/
- .. image:: /_static/label/python_package_index.png
- :target: https://pypi.python.org/pypi/stem/
+ :target: https://pypi.python.org/pypi/nyx/
Signed releases and instructions for both Python 2.x and 3.x. You can
easily install from its `tarball
- <https://pypi.python.org/packages/source/s/stem/stem-1.4.1b.tar.bz2>`_
+ <https://www.atagar.com/arm/resources/static/arm-1.4.5.0.tar.bz2>`_
(`sig
- <https://pypi.python.org/packages/source/s/stem/stem-1.4.1b.tar.bz2.asc>`_),
+ <https://www.atagar.com/arm/resources/static/arm-1.4.5.0.tar.bz2.asc>`_),
or with **pip**...
::
% sudo easy_install pip
- % sudo pip install stem
+ % sudo pip install nyx
* - .. image:: /_static/section/download/osx.png
@@ -91,106 +91,88 @@ Download
::
% sudo easy_install pip
- % sudo pip install stem
+ % sudo pip install nyx
* - .. image:: /_static/section/download/debian.png
- :target: http://packages.debian.org/sid/python-stem
+ :target: http://packages.debian.org/sid/tor-arm
- .. image:: /_static/label/debian.png
- :target: http://packages.debian.org/sid/python-stem
+ :target: http://packages.debian.org/sid/tor-arm
Package maintained by Dererk for Debian.
::
- % sudo apt-get install python-stem
+ % sudo apt-get install tor-arm
* - .. image:: /_static/section/download/ubuntu.png
- :target: https://launchpad.net/ubuntu/+source/python-stem
+ :target: https://launchpad.net/ubuntu/+source/tor-arm
- .. image:: /_static/label/ubuntu.png
- :target: https://launchpad.net/ubuntu/+source/python-stem
+ :target: https://launchpad.net/ubuntu/+source/tor-arm
Package derived from Debian for Ubuntu.
::
- % sudo apt-get install python-stem
+ % sudo apt-get install tor-arm
* - .. image:: /_static/section/download/fedora.png
- :target: https://apps.fedoraproject.org/packages/python-stem
+ :target: https://apps.fedoraproject.org/packages/tor-arm
- .. image:: /_static/label/fedora.png
- :target: https://apps.fedoraproject.org/packages/python-stem
+ :target: https://apps.fedoraproject.org/packages/tor-arm
- Packages maintained by Juan for Fedora. These include **python-stem**
- (Stem for Python 2.x), **python3-stem** (Stem for Python 3.x), and
- **python-stem-doc** (this website).
+ Packages maintained by Juan for Fedora.
::
- % sudo yum install python-stem
+ % sudo yum install tor-arm
* - .. image:: /_static/section/download/gentoo.png
- :target: http://packages.gentoo.org/package/net-libs/stem
+ :target: http://packages.gentoo.org/package/net-misc/arm
- .. image:: /_static/label/gentoo.png
- :target: http://packages.gentoo.org/package/net-libs/stem
+ :target: http://packages.gentoo.org/package/net-misc/arm
- Package maintained by Anthony Basile for Gentoo.
+ Package maintained by Jesse for Gentoo.
::
- % sudo emerge stem
-
- * - .. image:: /_static/section/download/archlinux.png
- :target: https://aur.archlinux.org/packages/stem/
-
- - .. image:: /_static/label/archlinux.png
- :target: https://aur.archlinux.org/packages/stem/
-
- Package maintained by Sjon for `Arch Linux
- <https://wiki.archlinux.org/index.php/AUR#Installing_packages>`_.
-
- ::
-
- % wget https://aur.archlinux.org/packages/st/stem/stem.tar.gz
- % tar -xvf stem.tar.gz
- % cd stem
- % makepkg --install
+ % sudo emerge arm
* - .. image:: /_static/section/download/slackware.png
- :target: http://slackbuilds.org/repository/14.1/python/stem/
+ :target: https://slackbuilds.org/repository/13.37/network/arm/
- .. image:: /_static/label/slackware.png
- :target: http://slackbuilds.org/repository/14.1/python/stem/
+ :target: https://slackbuilds.org/repository/13.37/network/arm/
- Package maintained by Markus for `Slackware
+ Package maintained by pyllyukko for `Slackware
<http://slackbuilds.org/howto/>`_.
* - .. image:: /_static/section/download/freebsd.png
- :target: http://www.freshports.org/security/py-stem/
+ :target: http://www.freshports.org/security/arm
- .. image:: /_static/label/freebsd.png
- :target: http://www.freshports.org/security/py-stem/
+ :target: http://www.freshports.org/security/arm
Port maintained by Carlo for `FreeBSD
<http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports.html>`_.
::
- % pkg install security/py-stem
+ % pkg install security/arm
* - .. image:: /_static/section/download/git.png
- :target: https://gitweb.torproject.org/stem.git
+ :target: https://gitweb.torproject.org/nyx.git
- .. image:: /_static/label/source_repository.png
- :target: https://gitweb.torproject.org/stem.git
+ :target: https://gitweb.torproject.org/nyx.git
- For those wanting to live on the bleeding edge or contribute to Stem,
- Stem's git repository can be fetched with...
+ For those wanting to live on the bleeding edge or contribute to Nyx,
+ Nyx's git repository can be fetched with...
::
- % git clone https://git.torproject.org/stem.git
+ % git clone https://git.torproject.org/nyx.git
1
0
commit 68f85da1fdf220da230cee41a5890574a2f9f2af
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Oct 8 13:15:19 2016 -0700
Changelog highlights for new release
Just a handful of the neatest user facing improvements.
---
docs/change_log.rst | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/docs/change_log.rst b/docs/change_log.rst
index 570f1a7..0eaec4a 100644
--- a/docs/change_log.rst
+++ b/docs/change_log.rst
@@ -60,6 +60,34 @@ Unreleased
The following are only available within Nyx's `git repository
<download.html>`_.
+From a user perspective little has changed, but this release is nothing less
+than a complete rewrite of our codebase. This adds long overdue **support for
+python 3.x**, test coverage, and migrate from TorCtl to `Stem
+<https://stem.torproject.org/>`_.
+
+Python 2.5 is no longer supported, but hopefully by now nobody will miss it. ;)
+
+ * **Startup**
+
+ * Startup is several seconds faster when ran for the first time
+
+ * **Graph**
+
+ * Graph prepopulation no longer requires shifting to 15 minute intervals
+
+ * **Connections**
+
+ * Connections are now shown despite DisableDebuggerAttachment
+ * Support for showing IPv6 connections
+
+ * **Logging**
+
+ * Order of magnitude faster log deduplication
+
+ * **Curses**
+
+ * Interface continues to update while awaiting user input
+
.. _version_1.4.5:
Version 1.4.5 (April 28th, 2012)
1
0
commit c0f1a432c443b51590dcee2a803de682c514306c
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Oct 8 14:13:42 2016 -0700
Move legacy changelog to its own page
The 1.x series was under development a long time, accumilating lots of release
notes. These won't be of interest to most users so moving these to a separate
page.
---
docs/change_log.rst | 796 +-------------------------------------------
docs/change_log_legacy.rst | 803 +++++++++++++++++++++++++++++++++++++++++++++
docs/contents.rst | 1 +
3 files changed, 805 insertions(+), 795 deletions(-)
diff --git a/docs/change_log.rst b/docs/change_log.rst
index 0eaec4a..29b211f 100644
--- a/docs/change_log.rst
+++ b/docs/change_log.rst
@@ -7,27 +7,7 @@ unreleased. For a monthly report on work being done see my `development log
* :ref:`versioning`
* :ref:`unreleased`
-* :ref:`version_1.4.5`
-* :ref:`version_1.4.4`
-* :ref:`version_1.4.3`
-* :ref:`version_1.4.2`
-* :ref:`version_1.4.1`
-* :ref:`version_1.4.0`
-* :ref:`version_1.3.7`
-* :ref:`version_1.3.6`
-* :ref:`version_1.3.5`
-* :ref:`version_1.3.4`
-* :ref:`version_1.3.3`
-* :ref:`version_1.3.2`
-* :ref:`version_1.3.1`
-* :ref:`version_1.3.0`
-* :ref:`version_1.2.2`
-* :ref:`version_1.2.1`
-* :ref:`version_1.2.0`
-* :ref:`version_1.1.3`
-* :ref:`version_1.1.2`
-* :ref:`version_1.1.1`
-* :ref:`version_1.1.0`
+* `Version 1.x <change_log_legacy.html>`_
.. _versioning:
@@ -88,777 +68,3 @@ Python 2.5 is no longer supported, but hopefully by now nobody will miss it. ;)
* Interface continues to update while awaiting user input
-.. _version_1.4.5:
-
-Version 1.4.5 (April 28th, 2012)
---------------------------------
-
-Software isn't perfect and Nyx is no exception. This is a bugfix release that
-corrects most issues that users have reported over the last several months.
-This did not include new features, but did have several changes that were
-important for continued interoperability with tor.
-
- * **Startup**
-
- * Check auth cookie is 32 bytes before reading (:trac:`4305`)
- * Crash when tor log file contains leap year dates (:trac:`5265`)
- * Crash when using unrecognized authentication methods like 'SAFECOOKIE'
-
- * **Logging**
-
- * Path issue when saving snapshot of the logs (`issue <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646080>`_)
-
- * **Connections**
-
- * Notify when DisableDebuggerAttachment prevents connection lookups
- * Better validation of circuit-staus output (:trac:`5267`)
- * Help information for 'enter' mislabeled (:trac:`4621`)
- * Circuits failed to show when connection information was unavailable
-
- * **Torrc**
-
- * Validation was case sensitive (:trac:`4601`)
- * Misleading DirReqStatistics warnings with new tor versions (:trac:`4237`)
-
- * **Curses**
-
- * Major terminal glitches related to the import of the readline module
- * Config option to work around ACS failures
-
- * **Cross-Platform Support**
-
- * **OSX/BSD:** support for pwd lookups (:trac:`4236`)
- * **OSX/BSD:** ps checks couldn't detect tor process
- * **OpenBSD:** only use lsof for connecion lookups
- * **Linux:** proc utils didn't account for big-endian architectures (:trac:`4777`)
- * **Debian:** misleading warning about default Logging value (:trac:`4602`)
- * **RedHat:** specify python verion in rpm dependencies
-
-.. _version_1.4.4:
-
-Version 1.4.4 (September 25th, 2011)
-------------------------------------
-
-Besides the normal bug fixes and minor features, this release introduces the
-**control interpreter**. This is a new prompt that gives raw control port
-access with tab completion, history scrollback, and irc-style command.
-
- * **Startup**
-
- * ControlSocket support (:trac:`3638`)
- * Notify when tor or nyx are running as root
- * Take chroot into consideration for auth cookie path
- * Don't start wizard when there's a tor process running, even if we can't connect to it
- * Try all authentication methods rather than just the first (:trac:`3958`)
-
- * **Graph**
-
- * Crash when pausing if we showed accounting stats
-
- * **Logging**
-
- * Skip reading from malformed tor log files
- * Unable to log GUARD events
-
- * **Connections**
-
- * Added dialogs with exit usage by port and guard/bridge usage by locale
- * Crash when shutting down while relay addresses are resolved
- * Crash when CIRC event occured while caching attached relays
-
- * **Configuration Editor**
-
- * Optional system wide torrc integration (:trac:`3629`)
- * We wrote a blank torrc when 'GETINFO config-text' was unavailable
- * Hotkey for saving the torrc conflicted with the relay setup wizard
- * Crash when pressing 'enter' if never attached to tor
-
- * **Wizard**
-
- * Quit wizard when the user presses 'q' rather than just esc (:trac:`3995`)
-
- * **Curses**
-
- * Force manual redraw when user presses ctrl+L (:trac:`2830`)
- * Quitting could cause unclean curses shutdown
- * Periodically redraw content to prevent terminal issues from persisting
-
- * **Website and Manual**
-
- * Moved downloads to archive.torproject.org for ssl
- * Incorrect nyxrc path in man page
-
- * **Hotfix release** (September 29th, 2011) corrected the following...
-
- * Crash when esc was pressed in the interpreter prompt (:trac:`4098`)
- * Deduplicationg couple common log messages (:trac:`4096`)
- * Ctrl+L redraw wasn't always being triggered (:trac:`2830`)
- * Dropped gtk/cagraph requirements
-
-.. _version_1.4.3:
-
-Version 1.4.3 (July 16th, 2011)
--------------------------------
-
-This completes the codebase refactoring that's been a year in the works and
-provides numerous performance and usability improvements. Most notably a
-**setup wizard for new relays** and **menu interface**. This release also
-includes gui prototype, performance improvements, and support for Mac OSX.
-
- * **Startup**
-
- * Renamed our process from "python src/starter.py" to "nyx"
- * Moved connection negotiation into torctl (:trac:`3409`)
- * Avoid excessive torctl memory allocation, lowering memory usage by 2.5 MB (12%) (:trac:`3406`)
- * More descriptive controller password prompt
- * Crash when a sighup crashes tor (:trac:`1329`)
- * Crash from unjoined threads during shutdown
- * Crash when pressing ctrl+c due to improper daemon shutdown
- * Crash when using the --debug argument with old tor versions
- * Crash when tor's socks port was used rather than the control port (:trac:`2580`)
-
- * **Header**
-
- * Requests a new identity when the user presses 'n'
- * Option to reconnect when tor's restarted
- * Provides file descriptor usage when tor is running out
- * Dropped file descriptor popup (both unused and inaccurate)
- * Indicate when tor's shut down in client mode
-
- * **Graph**
-
- * Pre-populates total bandwidth uploaded/downloaded
- * More intuitive mode toggling for resizing the graph
- * Intermediate graph bounds inaccurate or missing
-
- * **Connections**
-
- * Reintroduced descriptor popup
- * Provide nickname for circuit connections
- * Shut down torctl zombie connections to the control port (:trac:`2812`)
- * Misparsed circuit paths for tor versions prior to 0.2.2.1
- * Crash when pressing enter on a blank connection page (:trac:`3128`)
- * Crash when querying locales if geoip information was unavailable
-
- * **Configuration Editor**
-
- * Using SAVECONF rather than writing torrc directly
- * Edited config entries didn't display new value
- * Using extra horizontal space for the configuration values
- * Fallback configuration descriptions weren't being installed
- * Misparsed config option types for old tor versions
-
- * **Torrc**
-
- * Validation false positives for autogenerated Nickname values
-
- * **Curses**
-
- * Option to exclude panels from the interface
- * Option to override all displayed color
- * Speeding nyx's startup time from 0.84s to 0.14s (83% improvement by fetching connections in background)
- * Speeding nyx's shutdown time form ~1s to instantaneous (:trac:`2412`)
- * Display was cropped by an extra cell
- * Closing all message prompts when a key is pressed
- * Crash when cropping whitespace-only strings
-
- * **Manual**
-
- * Hardcoded home path rather than ~
-
- * **Website**
-
- * Moved nyx's codebase to git, with helper scripts to replace svn:externals and export
-
- * **Cross-Platform Support**
-
- * **OSX:** tor's pid couldn't be resolved, breaking much of nyx
- * **OSX:** only use lsof for connecion lookups
-
-.. _version_1.4.2:
-
-Version 1.4.2 (April 4th, 2011)
--------------------------------
-
-This release re-implements the connection panel. Besides maintainability, this
-includes several features like circuit paths, application connections, and
-better type identification.
-
- * **Startup**
-
- * Faster startup by lazy loading 'address => fingerprint' mappings
- * Dropped warning suggesting users set FetchUselessDescriptors
- * Failed connection attempts caused zombie connections (:trac:`2812`)
- * nyxrc option 'startup.dataDirectory' didn't work
- * Crash when using python 2.5 due to missing bin built-in
- * Crash when family entries have a trailing comma (:trac:`2414`)
- * Crash from uncaught OSError when making directories failed
- * Crash joining with torctl thread during shutdown
- * Crash citing 'syshook' during shutdown
-
- * **Header**
-
- * Displayed wrong address if changed since first started (:trac:`2776`)
-
- * **Graph**
-
- * Dropping use of the state file for bandwidth totals due to having just a day's worth of data
-
- * **Connections**
-
- * Listing active circuits
- * Identifying connection applications (firefox, vidalia, etc)
- * Identifying common port usage for exit connections
- * Display 'local -> internal -> external' address when there's room
- * Address order inverted for SOCKS and CONTROL connections
- * Better identifying client and directory connections
- * Better disambiguating multiple relays with the same address
- * Better space utilization for a variety of screen sizes
- * Detail popup no longer freezes the rest of the display
- * Detail popup now uses the full screen width and is dynamically resizable
- * Take DirServer and AlternateDirAuthority into account to determine authorities
- * Didn't recognize 172.* address as a private IP range
- * Renamed the 'APPLICATION' type to 'SOCKS'
- * Crash due to unknown relay nicknames
-
- * **Configuration Editor**
-
- * Hiding infrequently used config options by default
- * Better caching, reducing CPU use when scrolling by 40%
-
- * **Torrc**
-
- * Validation requires 'GETINFO config-text' from Tor verison 0.2.2.7 (:trac:`2501`)
- * Line numbers for torrc issues were off by one
- * Allowed sorting by 'is default' attribute
-
- * **Manual**
-
- * Instructions for setting up authentication in the readme
-
- * **Cross-Platform Support**
-
- * **BSD:** broken resolver availability checks caused connections to not show up for several seconds
-
- * **Hotfix release** (April 4th, 2011) - crash when parsing multiple spaces in the HiddenServicePort
- * **Hotfix release** (April 6th, 2011) - installing missed new files
- * **Hotfix release** (April 13th, 2011) - crash when requesting our flags failed
-
-.. _version_1.4.1:
-
-Version 1.4.1 (January 7th, 2011)
----------------------------------
-
-Platform specific enhancements including BSD compatibility and greatly improved
-performance on Linux.
-
- * **Startup**
-
- * '--debug' argument for dumping debugging information
- * Centralizing nyx resources in ~/.nyx
- * Expanding relative authentication cookie paths
- * Startup forked rather than execed our process
- * Crash with invlid paths including spaces and dashes
- * Crash when text input fields shown with python 2.5
-
- * **Header**
-
- * Displaying nyx's cpu usage
- * Updating uptime each second
- * More accurate measurement of tor cpu usage
-
- * **Logging**
-
- * No date dividers when scrollbars not present
-
- * **Connections**
-
- * Labeling use of our socks port as client connections
- * Provide UDP connections to include DNS lookups
- * Some resolvers failed when pid was unavailable
- * Dropping locale for internal connections
- * Skipping internal -> external address translation for private addresses
- * Initially shown connections often lacked the pid
- * Connection resolution failed when tor ran under a different name
- * Crash when presenting an undefined nickname
-
- * **Configuration Editor**
-
- * Summary descriptions of config options
- * Fallback manual information when tor's man page is unavailable
- * Crash when querying hidden service parameters
-
- * **Torrc**
-
- * Reloading torrc contents when there's a sighup
- * Validation false positives when GETCONF response has spaces
-
- * **Cross-Platform Support**
-
- * **Linux:** retrieving process information directly from proc, dramatically improving performance
- * **BSD:** pid resolution via pgrep and sockstat
- * **BSD:** connection resolution via sockstat, procstat, and lsof
- * **BSD:** auto-detecting path prefixes for FreeBSD jails
-
- * **Hotfix release** (January 11th, 2011) corrected the following...
-
- * Including platform, python version, and nyx/tor configurations in debug dumps
- * Crash when initial ps lookup fails
-
- * **Hotfix release** (January 12th, 2011) - properly parse ps results with decimal seconds
- * **Hotfix release** (January 15th, 2011) - adding --docPath argument to help Gentoo ebuilds (`issue <https://bugs.gentoo.org/349792>`_)
-
-.. _version_1.4.0:
-
-Version 1.4.0 (November 27th, 2010)
------------------------------------
-
-**New page to manage tor's configuration**, along with several revisions in
-preparation for being included in Debian.
-
- * **Startup**
-
- * Moved installation location to /usr/share/nyx
- * Replaced deb/rpm build resources with helper scripts
- * Removing autogenerated egg file from deb build
- * Including dh_pysupport flag to recognize private python module
- * Dropping references to the controller password after startup
- * Continued running in a broken state after ctrl+c due to non-daemon threads
-
- * **Logging**
-
- * Added scrollbar and scrolling by displayed content rather than line numbers
- * Disabling deduplications for long logs to avoid freezing interface
- * Crash when displaying empty torrc contents
-
- * **Torrc**
-
- * Validation notice when tor's present configuration doesn't match the torrc
- * Validation notice when torrc entry matches its default value
- * Validation didn't recognize 'second' and 'byte' arguments
- * Parsing multiline torrc entries supported in tor 0.2.2.17
- * Buggy scrolling when comments were stripped
-
- * **Curses**
-
- * Popups more resilient to the interface being resized
- * Using curses.textpad to add support in text fields for arrow keys, emacs keybindings, etc
- * Rounding error determining our scrollbar size
-
- * **Manual**
-
- * Incorrect man path for the sample nyxrc
-
- * **Hotfix release** (November 30th, 2010) - installer crashed creating temporary directory for compressed man page
-
-.. _version_1.3.7:
-
-Version 1.3.7 (October 6th, 2010)
----------------------------------
-
-Expanded log panel, installer, and deb/rpm builds.
-
- * **Startup**
-
- * Installation and removal scripts
- * Configurable path prefix for chroot jails
- * Using PidFile to get the pid if available
- * Dump stacktrace to /tmp when exceptions are raised while redrawing
- * Crash if ORPort left unset
-
- * **Header**
-
- * Caching for static GETINFO parameter
- * Drop irrelevant information when not running as a relay
-
- * **Graph**
-
- * Incremental y-axis measurements
- * Option for graph resizing
- * Measuring transfer rates in bits by default
- * Use update interval that matches tor's state file when prepopulating
- * Skip bandwidth prepopulation if not running as a relay
- * Properly update bandwidth stats during sighup
- * Race condition between heartbeat and first BW event
- * Crash when displayed in especially wide screens
-
- * **Logging**
-
- * Dividers for the date, bordering events from the same day
- * Deduplicating log entries
- * Option to clear the event log
- * Option for saving logged events, either as a snapshot or persistently
- * Support cropping events based on time
- * Redrawing with each event when at debug runlevel caused high cpu usage
- * Notice if tor supports event types that nyx doesn't
- * Better consolidation of identical runlevel labels
- * Performance improvements for log preopulation, caching, etc
- * Merging tor and nyx events by timestamp when prepopulating
- * Regex filtering broken for multiline log entries
- * Drop brackets if no events are being logged
-
- * **Connections**
-
- * Disabling DNS resolution to prevent leaking information to our resolvers
- * Failed to handle family entries identified by nickname
-
- * **Torrc**
-
- * Failed to parse torrc files with tabs
- * Remapping torrc aliases so GETCONF calls don't fail
- * Checking torrc logging types was case sensitive
- * Crash when ExitPolicy was undefined
-
- * **Curses**
-
- * Jumping to start/end of scrolling area when pressing home or end
- * Refreshing after popups to make the interface more responsive
-
- * **Manual**
-
- * Created man page
-
- * **Cross-Platform Support**
-
- * **Linux:** scripts and resources for making debs and rpms
- * **Debian:** change debian arch from any to all
-
- * **Hotfix release** (October 7th, 2010) - crash with TypeError in the graph panel
-
-.. _version_1.3.6:
-
-Version 1.3.6 (June 7th, 2010)
-------------------------------
-
-Performance improvements and a few nice features. This improves the refresh
-rate (coinciding with a drop of cpu usage) from 30ms to 4ms, an 87%
-improvement.
-
- * **Startup**
-
- * Faster quitting by no longer waiting on sleeping threads
- * Caching commonly fetched relay information (fingerprint, descriptor, etc)
- * Systems util to standardize usage, add caching, prevent stdout leakage, etc
- * Optionally fetch settings from a nyxrc file
- * Wrapper for TorCtl providing singleton accessor and better API
- * Drop support for the '-p' argument for security reasons
- * Crash if torctl reports TorCtlClosed before the first refresh
-
- * **Header**
-
- * Support reattaching when tor's stopped then restarted
- * Notify when tor's disconnected
- * Better handling of tiny displays
- * Better caching and background updating
-
- * **Graph**
-
- * Prepopulate bandwidth information from stat file when available
- * Provide observed and measured bandwidth stats
- * Option to restrict graph bounds to local minima and maxima
- * Account for MaxAdvertisedBandwidth in the effective bandwidth rate
- * Better caching and reduced redraw rate
-
- * **Connections**
-
- * Suspend connection resolution when tor's stopped
- * Don't initialize while in blind mode
- * ss resolution didn't specifying use of numeric ports
- * Issue defaulting connection resolver to one we predetermined to be available
- * Crash when trying to resolve addresses without network connectivity
- * Crash due to unjoined connection resolution thread when quitting
-
-.. _version_1.3.5:
-
-Version 1.3.5 (April 8th, 2010)
--------------------------------
-
-Handful of small fixes amid codebase refactoring.
-
- * **Startup**
-
- * Issue resets via RELOAD signal rather than SIGHUP
- * Crash due to unexpected None values when calling GETCONF
-
- * **Logging**
-
- * Panel sometimes drew itself before properly positioned while starting up
-
- * **Connections**
-
- * Added lsof and ss connection resolvers
- * Option for selecting mode of resolution
- * Reduce connection resolution rate if calls are burdensome
- * Optional dns resolution via socket module (disabled by default due to worse performance)
-
- * **Curses**
-
- * Crash when use_default_colors() fails
- * Help keys weren't consistently bolded
-
-.. _version_1.3.4:
-
-Version 1.3.4 (March 7th, 2010)
--------------------------------
-
-Bugfix bundle for a handful of issues.
-
- * **Startup**
-
- * Crash when user pressed ctrl+c due to uncaught KeyboardInterrupt
-
- * **Header**
-
- * Multi-line exit policies weren't interpreted correctly
-
- * **Connections**
-
- * Crash when consensus couldn't be retrieved
-
- * **Torrc**
-
- * Display bug when stripping comments if torrc is longer than the screen
- * Stripping didn't include inline comments
- * Validation failed for some CSV values like ExitPolicy
-
- * **Cross-Platform Support**
-
- * **Debian:** file descriptor limit estimation incorrect
-
- * **Hotfix release** (March 9th, 2010) - crash while starting up processing family connections
- * **Hotfix release** (April 7th, 2010) - sensitive data not scrubbed for inbound connections
-
-.. _version_1.3.3:
-
-Version 1.3.3 (February 27th, 2010)
------------------------------------
-
-Handful of issues brought up on irc, most notably scrubbing the interface of
-sensitive information.
-
- * **Startup**
-
- * Checking for curses built-ins before starting up
-
- * **Graph**
-
- * Added precision for bandwidth cap and burst
- * Not resized properly during a sighup
-
- * **Connections**
-
- * Scrubbing sensitive client/exit information to address privacy concerns
- * Showing external address rather than local nat
-
- * **Manual**
-
- * Providing file descriptions in the README
- * Crash due to missing sockset and torctl imports
-
-.. _version_1.3.2:
-
-Version 1.3.2 (February 14th, 2010)
------------------------------------
-
-Small bugfix bundle.
-
- * **Header**
-
- * Couple system commands weren't suppressing stderr
- * Didn't account for ORListenAddress in the address we displayed
-
- * **Graph**
-
- * Mishandling DST for accounting's 'Time to reset'
-
- * **Manual**
-
- * Include copy of the GPL
-
- * **Curses**
-
- * Crash when too small for scrollbars to be drawn
-
-.. _version_1.3.1:
-
-Version 1.3.1 (February 7th, 2010)
-----------------------------------
-
-Small bugfix bundle, mostly focused on improving initialization.
-
- * **Startup**
-
- * Use PROTOCOLINFO to autodetect supported authentication and cookie location
- * Added the '--blind' argument to prevent connection lookups
- * Added the '--event' argument to select events to log by character flags
-
- * **Logging**
-
- * Condense event labels for runlevel ranges
-
-.. _version_1.3.0:
-
-Version 1.3.0 (November 29th, 2009)
------------------------------------
-
-Small bugfix bundle.
-
- * **Startup**
-
- * Commands can be invoked directly from the help popup
- * Suppress torctl startup issues from going to stdout
-
- * **Header**
-
- * Truncating version if too long
- * Error messaging when file descriptor dialog fails
-
- * **Connections**
-
- * Offset glitch when scrollbar is visible
- * Drop family entries if control port connection is closed
-
-.. _version_1.2.2:
-
-Version 1.2.2 (November 8th, 2009)
-----------------------------------
-
-Small bugfix bundle before starting a new job.
-
- * **Header**
-
- * File descriptor popup providing stats and a scrollable listing
- * Crash when cleaning up hostname cache
-
- * **Connections**
-
- * Include family relays in the connection listing
- * Stretching connection lines to fill the full screen
-
- * **Torrc**
-
- * Warning if torrc fails to load
- * Validation usually weren't detecting duplicates
-
-.. _version_1.2.1:
-
-Version 1.2.1 (October 21st, 2009)
-----------------------------------
-
-Torrc validation, improved event logging, and more.
-
- * **Startup**
-
- * Crash due to improperly closing torctl when quitting
- * Crash due to uncaught TorCtlClosed exceptions
-
- * **Header**
-
- * Notice when control port is closed
- * Progress bar when resolving a batch of hostnames
- * Information left inaccurate after sighup
-
- * **Connections**
-
- * Incorrect connection counts when paused
- * Noisy netstat and geoip failures when tor quit
- * Sorting broken when unpaused
-
- * **Torrc**
-
- * Verify that the torrc matches tor's actual state
- * Check for torrc entries that are irrelevant due to being duplicates
-
- * **Logging**
-
- * Support logging nyx and torctl events
- * Only prepopulate events from this tor instance
- * Limit number of prepopulated entries to prevent long startup time
-
-.. _version_1.2.0:
-
-Version 1.2.0 (October 16th, 2009)
-----------------------------------
-
-Small bugfix bundle.
-
- * **Startup**
-
- * Ask for confirmation when quitting
-
- * **Logging**
-
- * Prepopulation using tor's log file
- * Support multi-line log messages
-
- * **Connections**
-
- * Connection times became inaccurate when paused or not visible
- * Crash due to connection cache when paused
-
-.. _version_1.1.3:
-
-Version 1.1.3 (September 28th, 2009)
-------------------------------------
-
-Small bugfix bundle.
-
- * **Startup**
-
- * Fall back to ps to determine tor's pid
-
- * **Connections**
-
- * Query connections in the background rather than as part of rendering
-
- * **Torrc**
-
- * Expand relative torrc paths
-
-.. _version_1.1.2:
-
-Version 1.1.2 (September 27th, 2009)
-------------------------------------
-
-Small bugfix bundle.
-
- * **Graph**
-
- * Reloading static information after SIGHUP
-
- * **Manual**
-
- * Added a changelog
-
- * **Cross-Platform Support**
-
- * **OSX/BSD:** crash when system calls failed
-
-.. _version_1.1.1:
-
-Version 1.1.1 (September 23rd, 2009)
-------------------------------------
-
-Small bugfix bundle.
-
- * **Startup**
-
- * Notify if python version is incompatible
- * Added the '--version' argument to help with bug reports
-
- * **Graph**
-
- * Didn't account for RelayBandwidthRate/Burst in effective bandwidth
-
- * **Connections**
-
- * Provide additional connection information when room's available
- * Identifying directory connections
- * Preserving old listing when netstat fails
-
-.. _version_1.1.0:
-
-Version 1.1.0 (September 6th, 2009)
------------------------------------
-
-Initial release of Nyx.
diff --git a/docs/change_log_legacy.rst b/docs/change_log_legacy.rst
new file mode 100644
index 0000000..3959d3e
--- /dev/null
+++ b/docs/change_log_legacy.rst
@@ -0,0 +1,803 @@
+Version 1.x Change Log
+----------------------
+
+Prior to its 2.x release Nyx went under the name of "**arm**". This series was
+under active development 2009-2012.
+
+* :ref:`version_1.4.5`
+* :ref:`version_1.4.4`
+* :ref:`version_1.4.3`
+* :ref:`version_1.4.2`
+* :ref:`version_1.4.1`
+* :ref:`version_1.4.0`
+* :ref:`version_1.3.7`
+* :ref:`version_1.3.6`
+* :ref:`version_1.3.5`
+* :ref:`version_1.3.4`
+* :ref:`version_1.3.3`
+* :ref:`version_1.3.2`
+* :ref:`version_1.3.1`
+* :ref:`version_1.3.0`
+* :ref:`version_1.2.2`
+* :ref:`version_1.2.1`
+* :ref:`version_1.2.0`
+* :ref:`version_1.1.3`
+* :ref:`version_1.1.2`
+* :ref:`version_1.1.1`
+* :ref:`version_1.1.0`
+
+.. _version_1.4.5:
+
+Version 1.4.5 (April 28th, 2012)
+--------------------------------
+
+Software isn't perfect and Nyx is no exception. This is a bugfix release that
+corrects most issues that users have reported over the last several months.
+This did not include new features, but did have several changes that were
+important for continued interoperability with tor.
+
+ * **Startup**
+
+ * Check auth cookie is 32 bytes before reading (:trac:`4305`)
+ * Crash when tor log file contains leap year dates (:trac:`5265`)
+ * Crash when using unrecognized authentication methods like 'SAFECOOKIE'
+
+ * **Logging**
+
+ * Path issue when saving snapshot of the logs (`issue <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646080>`_)
+
+ * **Connections**
+
+ * Notify when DisableDebuggerAttachment prevents connection lookups
+ * Better validation of circuit-staus output (:trac:`5267`)
+ * Help information for 'enter' mislabeled (:trac:`4621`)
+ * Circuits failed to show when connection information was unavailable
+
+ * **Torrc**
+
+ * Validation was case sensitive (:trac:`4601`)
+ * Misleading DirReqStatistics warnings with new tor versions (:trac:`4237`)
+
+ * **Curses**
+
+ * Major terminal glitches related to the import of the readline module
+ * Config option to work around ACS failures
+
+ * **Cross-Platform Support**
+
+ * **OSX/BSD:** support for pwd lookups (:trac:`4236`)
+ * **OSX/BSD:** ps checks couldn't detect tor process
+ * **OpenBSD:** only use lsof for connecion lookups
+ * **Linux:** proc utils didn't account for big-endian architectures (:trac:`4777`)
+ * **Debian:** misleading warning about default Logging value (:trac:`4602`)
+ * **RedHat:** specify python verion in rpm dependencies
+
+.. _version_1.4.4:
+
+Version 1.4.4 (September 25th, 2011)
+------------------------------------
+
+Besides the normal bug fixes and minor features, this release introduces the
+**control interpreter**. This is a new prompt that gives raw control port
+access with tab completion, history scrollback, and irc-style command.
+
+ * **Startup**
+
+ * ControlSocket support (:trac:`3638`)
+ * Notify when tor or nyx are running as root
+ * Take chroot into consideration for auth cookie path
+ * Don't start wizard when there's a tor process running, even if we can't connect to it
+ * Try all authentication methods rather than just the first (:trac:`3958`)
+
+ * **Graph**
+
+ * Crash when pausing if we showed accounting stats
+
+ * **Logging**
+
+ * Skip reading from malformed tor log files
+ * Unable to log GUARD events
+
+ * **Connections**
+
+ * Added dialogs with exit usage by port and guard/bridge usage by locale
+ * Crash when shutting down while relay addresses are resolved
+ * Crash when CIRC event occured while caching attached relays
+
+ * **Configuration Editor**
+
+ * Optional system wide torrc integration (:trac:`3629`)
+ * We wrote a blank torrc when 'GETINFO config-text' was unavailable
+ * Hotkey for saving the torrc conflicted with the relay setup wizard
+ * Crash when pressing 'enter' if never attached to tor
+
+ * **Wizard**
+
+ * Quit wizard when the user presses 'q' rather than just esc (:trac:`3995`)
+
+ * **Curses**
+
+ * Force manual redraw when user presses ctrl+L (:trac:`2830`)
+ * Quitting could cause unclean curses shutdown
+ * Periodically redraw content to prevent terminal issues from persisting
+
+ * **Website and Manual**
+
+ * Moved downloads to archive.torproject.org for ssl
+ * Incorrect nyxrc path in man page
+
+ * **Hotfix release** (September 29th, 2011) corrected the following...
+
+ * Crash when esc was pressed in the interpreter prompt (:trac:`4098`)
+ * Deduplicationg couple common log messages (:trac:`4096`)
+ * Ctrl+L redraw wasn't always being triggered (:trac:`2830`)
+ * Dropped gtk/cagraph requirements
+
+.. _version_1.4.3:
+
+Version 1.4.3 (July 16th, 2011)
+-------------------------------
+
+This completes the codebase refactoring that's been a year in the works and
+provides numerous performance and usability improvements. Most notably a
+**setup wizard for new relays** and **menu interface**. This release also
+includes gui prototype, performance improvements, and support for Mac OSX.
+
+ * **Startup**
+
+ * Renamed our process from "python src/starter.py" to "nyx"
+ * Moved connection negotiation into torctl (:trac:`3409`)
+ * Avoid excessive torctl memory allocation, lowering memory usage by 2.5 MB (12%) (:trac:`3406`)
+ * More descriptive controller password prompt
+ * Crash when a sighup crashes tor (:trac:`1329`)
+ * Crash from unjoined threads during shutdown
+ * Crash when pressing ctrl+c due to improper daemon shutdown
+ * Crash when using the --debug argument with old tor versions
+ * Crash when tor's socks port was used rather than the control port (:trac:`2580`)
+
+ * **Header**
+
+ * Requests a new identity when the user presses 'n'
+ * Option to reconnect when tor's restarted
+ * Provides file descriptor usage when tor is running out
+ * Dropped file descriptor popup (both unused and inaccurate)
+ * Indicate when tor's shut down in client mode
+
+ * **Graph**
+
+ * Pre-populates total bandwidth uploaded/downloaded
+ * More intuitive mode toggling for resizing the graph
+ * Intermediate graph bounds inaccurate or missing
+
+ * **Connections**
+
+ * Reintroduced descriptor popup
+ * Provide nickname for circuit connections
+ * Shut down torctl zombie connections to the control port (:trac:`2812`)
+ * Misparsed circuit paths for tor versions prior to 0.2.2.1
+ * Crash when pressing enter on a blank connection page (:trac:`3128`)
+ * Crash when querying locales if geoip information was unavailable
+
+ * **Configuration Editor**
+
+ * Using SAVECONF rather than writing torrc directly
+ * Edited config entries didn't display new value
+ * Using extra horizontal space for the configuration values
+ * Fallback configuration descriptions weren't being installed
+ * Misparsed config option types for old tor versions
+
+ * **Torrc**
+
+ * Validation false positives for autogenerated Nickname values
+
+ * **Curses**
+
+ * Option to exclude panels from the interface
+ * Option to override all displayed color
+ * Speeding nyx's startup time from 0.84s to 0.14s (83% improvement by fetching connections in background)
+ * Speeding nyx's shutdown time form ~1s to instantaneous (:trac:`2412`)
+ * Display was cropped by an extra cell
+ * Closing all message prompts when a key is pressed
+ * Crash when cropping whitespace-only strings
+
+ * **Manual**
+
+ * Hardcoded home path rather than ~
+
+ * **Website**
+
+ * Moved nyx's codebase to git, with helper scripts to replace svn:externals and export
+
+ * **Cross-Platform Support**
+
+ * **OSX:** tor's pid couldn't be resolved, breaking much of nyx
+ * **OSX:** only use lsof for connecion lookups
+
+.. _version_1.4.2:
+
+Version 1.4.2 (April 4th, 2011)
+-------------------------------
+
+This release re-implements the connection panel. Besides maintainability, this
+includes several features like circuit paths, application connections, and
+better type identification.
+
+ * **Startup**
+
+ * Faster startup by lazy loading 'address => fingerprint' mappings
+ * Dropped warning suggesting users set FetchUselessDescriptors
+ * Failed connection attempts caused zombie connections (:trac:`2812`)
+ * nyxrc option 'startup.dataDirectory' didn't work
+ * Crash when using python 2.5 due to missing bin built-in
+ * Crash when family entries have a trailing comma (:trac:`2414`)
+ * Crash from uncaught OSError when making directories failed
+ * Crash joining with torctl thread during shutdown
+ * Crash citing 'syshook' during shutdown
+
+ * **Header**
+
+ * Displayed wrong address if changed since first started (:trac:`2776`)
+
+ * **Graph**
+
+ * Dropping use of the state file for bandwidth totals due to having just a day's worth of data
+
+ * **Connections**
+
+ * Listing active circuits
+ * Identifying connection applications (firefox, vidalia, etc)
+ * Identifying common port usage for exit connections
+ * Display 'local -> internal -> external' address when there's room
+ * Address order inverted for SOCKS and CONTROL connections
+ * Better identifying client and directory connections
+ * Better disambiguating multiple relays with the same address
+ * Better space utilization for a variety of screen sizes
+ * Detail popup no longer freezes the rest of the display
+ * Detail popup now uses the full screen width and is dynamically resizable
+ * Take DirServer and AlternateDirAuthority into account to determine authorities
+ * Didn't recognize 172.* address as a private IP range
+ * Renamed the 'APPLICATION' type to 'SOCKS'
+ * Crash due to unknown relay nicknames
+
+ * **Configuration Editor**
+
+ * Hiding infrequently used config options by default
+ * Better caching, reducing CPU use when scrolling by 40%
+
+ * **Torrc**
+
+ * Validation requires 'GETINFO config-text' from Tor verison 0.2.2.7 (:trac:`2501`)
+ * Line numbers for torrc issues were off by one
+ * Allowed sorting by 'is default' attribute
+
+ * **Manual**
+
+ * Instructions for setting up authentication in the readme
+
+ * **Cross-Platform Support**
+
+ * **BSD:** broken resolver availability checks caused connections to not show up for several seconds
+
+ * **Hotfix release** (April 4th, 2011) - crash when parsing multiple spaces in the HiddenServicePort
+ * **Hotfix release** (April 6th, 2011) - installing missed new files
+ * **Hotfix release** (April 13th, 2011) - crash when requesting our flags failed
+
+.. _version_1.4.1:
+
+Version 1.4.1 (January 7th, 2011)
+---------------------------------
+
+Platform specific enhancements including BSD compatibility and greatly improved
+performance on Linux.
+
+ * **Startup**
+
+ * '--debug' argument for dumping debugging information
+ * Centralizing nyx resources in ~/.nyx
+ * Expanding relative authentication cookie paths
+ * Startup forked rather than execed our process
+ * Crash with invlid paths including spaces and dashes
+ * Crash when text input fields shown with python 2.5
+
+ * **Header**
+
+ * Displaying nyx's cpu usage
+ * Updating uptime each second
+ * More accurate measurement of tor cpu usage
+
+ * **Logging**
+
+ * No date dividers when scrollbars not present
+
+ * **Connections**
+
+ * Labeling use of our socks port as client connections
+ * Provide UDP connections to include DNS lookups
+ * Some resolvers failed when pid was unavailable
+ * Dropping locale for internal connections
+ * Skipping internal -> external address translation for private addresses
+ * Initially shown connections often lacked the pid
+ * Connection resolution failed when tor ran under a different name
+ * Crash when presenting an undefined nickname
+
+ * **Configuration Editor**
+
+ * Summary descriptions of config options
+ * Fallback manual information when tor's man page is unavailable
+ * Crash when querying hidden service parameters
+
+ * **Torrc**
+
+ * Reloading torrc contents when there's a sighup
+ * Validation false positives when GETCONF response has spaces
+
+ * **Cross-Platform Support**
+
+ * **Linux:** retrieving process information directly from proc, dramatically improving performance
+ * **BSD:** pid resolution via pgrep and sockstat
+ * **BSD:** connection resolution via sockstat, procstat, and lsof
+ * **BSD:** auto-detecting path prefixes for FreeBSD jails
+
+ * **Hotfix release** (January 11th, 2011) corrected the following...
+
+ * Including platform, python version, and nyx/tor configurations in debug dumps
+ * Crash when initial ps lookup fails
+
+ * **Hotfix release** (January 12th, 2011) - properly parse ps results with decimal seconds
+ * **Hotfix release** (January 15th, 2011) - adding --docPath argument to help Gentoo ebuilds (`issue <https://bugs.gentoo.org/349792>`_)
+
+.. _version_1.4.0:
+
+Version 1.4.0 (November 27th, 2010)
+-----------------------------------
+
+**New page to manage tor's configuration**, along with several revisions in
+preparation for being included in Debian.
+
+ * **Startup**
+
+ * Moved installation location to /usr/share/nyx
+ * Replaced deb/rpm build resources with helper scripts
+ * Removing autogenerated egg file from deb build
+ * Including dh_pysupport flag to recognize private python module
+ * Dropping references to the controller password after startup
+ * Continued running in a broken state after ctrl+c due to non-daemon threads
+
+ * **Logging**
+
+ * Added scrollbar and scrolling by displayed content rather than line numbers
+ * Disabling deduplications for long logs to avoid freezing interface
+ * Crash when displaying empty torrc contents
+
+ * **Torrc**
+
+ * Validation notice when tor's present configuration doesn't match the torrc
+ * Validation notice when torrc entry matches its default value
+ * Validation didn't recognize 'second' and 'byte' arguments
+ * Parsing multiline torrc entries supported in tor 0.2.2.17
+ * Buggy scrolling when comments were stripped
+
+ * **Curses**
+
+ * Popups more resilient to the interface being resized
+ * Using curses.textpad to add support in text fields for arrow keys, emacs keybindings, etc
+ * Rounding error determining our scrollbar size
+
+ * **Manual**
+
+ * Incorrect man path for the sample nyxrc
+
+ * **Hotfix release** (November 30th, 2010) - installer crashed creating temporary directory for compressed man page
+
+.. _version_1.3.7:
+
+Version 1.3.7 (October 6th, 2010)
+---------------------------------
+
+Expanded log panel, installer, and deb/rpm builds.
+
+ * **Startup**
+
+ * Installation and removal scripts
+ * Configurable path prefix for chroot jails
+ * Using PidFile to get the pid if available
+ * Dump stacktrace to /tmp when exceptions are raised while redrawing
+ * Crash if ORPort left unset
+
+ * **Header**
+
+ * Caching for static GETINFO parameter
+ * Drop irrelevant information when not running as a relay
+
+ * **Graph**
+
+ * Incremental y-axis measurements
+ * Option for graph resizing
+ * Measuring transfer rates in bits by default
+ * Use update interval that matches tor's state file when prepopulating
+ * Skip bandwidth prepopulation if not running as a relay
+ * Properly update bandwidth stats during sighup
+ * Race condition between heartbeat and first BW event
+ * Crash when displayed in especially wide screens
+
+ * **Logging**
+
+ * Dividers for the date, bordering events from the same day
+ * Deduplicating log entries
+ * Option to clear the event log
+ * Option for saving logged events, either as a snapshot or persistently
+ * Support cropping events based on time
+ * Redrawing with each event when at debug runlevel caused high cpu usage
+ * Notice if tor supports event types that nyx doesn't
+ * Better consolidation of identical runlevel labels
+ * Performance improvements for log preopulation, caching, etc
+ * Merging tor and nyx events by timestamp when prepopulating
+ * Regex filtering broken for multiline log entries
+ * Drop brackets if no events are being logged
+
+ * **Connections**
+
+ * Disabling DNS resolution to prevent leaking information to our resolvers
+ * Failed to handle family entries identified by nickname
+
+ * **Torrc**
+
+ * Failed to parse torrc files with tabs
+ * Remapping torrc aliases so GETCONF calls don't fail
+ * Checking torrc logging types was case sensitive
+ * Crash when ExitPolicy was undefined
+
+ * **Curses**
+
+ * Jumping to start/end of scrolling area when pressing home or end
+ * Refreshing after popups to make the interface more responsive
+
+ * **Manual**
+
+ * Created man page
+
+ * **Cross-Platform Support**
+
+ * **Linux:** scripts and resources for making debs and rpms
+ * **Debian:** change debian arch from any to all
+
+ * **Hotfix release** (October 7th, 2010) - crash with TypeError in the graph panel
+
+.. _version_1.3.6:
+
+Version 1.3.6 (June 7th, 2010)
+------------------------------
+
+Performance improvements and a few nice features. This improves the refresh
+rate (coinciding with a drop of cpu usage) from 30ms to 4ms, an 87%
+improvement.
+
+ * **Startup**
+
+ * Faster quitting by no longer waiting on sleeping threads
+ * Caching commonly fetched relay information (fingerprint, descriptor, etc)
+ * Systems util to standardize usage, add caching, prevent stdout leakage, etc
+ * Optionally fetch settings from a nyxrc file
+ * Wrapper for TorCtl providing singleton accessor and better API
+ * Drop support for the '-p' argument for security reasons
+ * Crash if torctl reports TorCtlClosed before the first refresh
+
+ * **Header**
+
+ * Support reattaching when tor's stopped then restarted
+ * Notify when tor's disconnected
+ * Better handling of tiny displays
+ * Better caching and background updating
+
+ * **Graph**
+
+ * Prepopulate bandwidth information from stat file when available
+ * Provide observed and measured bandwidth stats
+ * Option to restrict graph bounds to local minima and maxima
+ * Account for MaxAdvertisedBandwidth in the effective bandwidth rate
+ * Better caching and reduced redraw rate
+
+ * **Connections**
+
+ * Suspend connection resolution when tor's stopped
+ * Don't initialize while in blind mode
+ * ss resolution didn't specifying use of numeric ports
+ * Issue defaulting connection resolver to one we predetermined to be available
+ * Crash when trying to resolve addresses without network connectivity
+ * Crash due to unjoined connection resolution thread when quitting
+
+.. _version_1.3.5:
+
+Version 1.3.5 (April 8th, 2010)
+-------------------------------
+
+Handful of small fixes amid codebase refactoring.
+
+ * **Startup**
+
+ * Issue resets via RELOAD signal rather than SIGHUP
+ * Crash due to unexpected None values when calling GETCONF
+
+ * **Logging**
+
+ * Panel sometimes drew itself before properly positioned while starting up
+
+ * **Connections**
+
+ * Added lsof and ss connection resolvers
+ * Option for selecting mode of resolution
+ * Reduce connection resolution rate if calls are burdensome
+ * Optional dns resolution via socket module (disabled by default due to worse performance)
+
+ * **Curses**
+
+ * Crash when use_default_colors() fails
+ * Help keys weren't consistently bolded
+
+.. _version_1.3.4:
+
+Version 1.3.4 (March 7th, 2010)
+-------------------------------
+
+Bugfix bundle for a handful of issues.
+
+ * **Startup**
+
+ * Crash when user pressed ctrl+c due to uncaught KeyboardInterrupt
+
+ * **Header**
+
+ * Multi-line exit policies weren't interpreted correctly
+
+ * **Connections**
+
+ * Crash when consensus couldn't be retrieved
+
+ * **Torrc**
+
+ * Display bug when stripping comments if torrc is longer than the screen
+ * Stripping didn't include inline comments
+ * Validation failed for some CSV values like ExitPolicy
+
+ * **Cross-Platform Support**
+
+ * **Debian:** file descriptor limit estimation incorrect
+
+ * **Hotfix release** (March 9th, 2010) - crash while starting up processing family connections
+ * **Hotfix release** (April 7th, 2010) - sensitive data not scrubbed for inbound connections
+
+.. _version_1.3.3:
+
+Version 1.3.3 (February 27th, 2010)
+-----------------------------------
+
+Handful of issues brought up on irc, most notably scrubbing the interface of
+sensitive information.
+
+ * **Startup**
+
+ * Checking for curses built-ins before starting up
+
+ * **Graph**
+
+ * Added precision for bandwidth cap and burst
+ * Not resized properly during a sighup
+
+ * **Connections**
+
+ * Scrubbing sensitive client/exit information to address privacy concerns
+ * Showing external address rather than local nat
+
+ * **Manual**
+
+ * Providing file descriptions in the README
+ * Crash due to missing sockset and torctl imports
+
+.. _version_1.3.2:
+
+Version 1.3.2 (February 14th, 2010)
+-----------------------------------
+
+Small bugfix bundle.
+
+ * **Header**
+
+ * Couple system commands weren't suppressing stderr
+ * Didn't account for ORListenAddress in the address we displayed
+
+ * **Graph**
+
+ * Mishandling DST for accounting's 'Time to reset'
+
+ * **Manual**
+
+ * Include copy of the GPL
+
+ * **Curses**
+
+ * Crash when too small for scrollbars to be drawn
+
+.. _version_1.3.1:
+
+Version 1.3.1 (February 7th, 2010)
+----------------------------------
+
+Small bugfix bundle, mostly focused on improving initialization.
+
+ * **Startup**
+
+ * Use PROTOCOLINFO to autodetect supported authentication and cookie location
+ * Added the '--blind' argument to prevent connection lookups
+ * Added the '--event' argument to select events to log by character flags
+
+ * **Logging**
+
+ * Condense event labels for runlevel ranges
+
+.. _version_1.3.0:
+
+Version 1.3.0 (November 29th, 2009)
+-----------------------------------
+
+Small bugfix bundle.
+
+ * **Startup**
+
+ * Commands can be invoked directly from the help popup
+ * Suppress torctl startup issues from going to stdout
+
+ * **Header**
+
+ * Truncating version if too long
+ * Error messaging when file descriptor dialog fails
+
+ * **Connections**
+
+ * Offset glitch when scrollbar is visible
+ * Drop family entries if control port connection is closed
+
+.. _version_1.2.2:
+
+Version 1.2.2 (November 8th, 2009)
+----------------------------------
+
+Small bugfix bundle before starting a new job.
+
+ * **Header**
+
+ * File descriptor popup providing stats and a scrollable listing
+ * Crash when cleaning up hostname cache
+
+ * **Connections**
+
+ * Include family relays in the connection listing
+ * Stretching connection lines to fill the full screen
+
+ * **Torrc**
+
+ * Warning if torrc fails to load
+ * Validation usually weren't detecting duplicates
+
+.. _version_1.2.1:
+
+Version 1.2.1 (October 21st, 2009)
+----------------------------------
+
+Torrc validation, improved event logging, and more.
+
+ * **Startup**
+
+ * Crash due to improperly closing torctl when quitting
+ * Crash due to uncaught TorCtlClosed exceptions
+
+ * **Header**
+
+ * Notice when control port is closed
+ * Progress bar when resolving a batch of hostnames
+ * Information left inaccurate after sighup
+
+ * **Connections**
+
+ * Incorrect connection counts when paused
+ * Noisy netstat and geoip failures when tor quit
+ * Sorting broken when unpaused
+
+ * **Torrc**
+
+ * Verify that the torrc matches tor's actual state
+ * Check for torrc entries that are irrelevant due to being duplicates
+
+ * **Logging**
+
+ * Support logging nyx and torctl events
+ * Only prepopulate events from this tor instance
+ * Limit number of prepopulated entries to prevent long startup time
+
+.. _version_1.2.0:
+
+Version 1.2.0 (October 16th, 2009)
+----------------------------------
+
+Small bugfix bundle.
+
+ * **Startup**
+
+ * Ask for confirmation when quitting
+
+ * **Logging**
+
+ * Prepopulation using tor's log file
+ * Support multi-line log messages
+
+ * **Connections**
+
+ * Connection times became inaccurate when paused or not visible
+ * Crash due to connection cache when paused
+
+.. _version_1.1.3:
+
+Version 1.1.3 (September 28th, 2009)
+------------------------------------
+
+Small bugfix bundle.
+
+ * **Startup**
+
+ * Fall back to ps to determine tor's pid
+
+ * **Connections**
+
+ * Query connections in the background rather than as part of rendering
+
+ * **Torrc**
+
+ * Expand relative torrc paths
+
+.. _version_1.1.2:
+
+Version 1.1.2 (September 27th, 2009)
+------------------------------------
+
+Small bugfix bundle.
+
+ * **Graph**
+
+ * Reloading static information after SIGHUP
+
+ * **Manual**
+
+ * Added a changelog
+
+ * **Cross-Platform Support**
+
+ * **OSX/BSD:** crash when system calls failed
+
+.. _version_1.1.1:
+
+Version 1.1.1 (September 23rd, 2009)
+------------------------------------
+
+Small bugfix bundle.
+
+ * **Startup**
+
+ * Notify if python version is incompatible
+ * Added the '--version' argument to help with bug reports
+
+ * **Graph**
+
+ * Didn't account for RelayBandwidthRate/Burst in effective bandwidth
+
+ * **Connections**
+
+ * Provide additional connection information when room's available
+ * Identifying directory connections
+ * Preserving old listing when netstat fails
+
+.. _version_1.1.0:
+
+Version 1.1.0 (September 6th, 2009)
+-----------------------------------
+
+Initial release of Nyx.
+
diff --git a/docs/contents.rst b/docs/contents.rst
index fb388c4..63b471f 100644
--- a/docs/contents.rst
+++ b/docs/contents.rst
@@ -5,6 +5,7 @@ Contents
:maxdepth: 2
change_log
+ change_log_legacy
download
screenshots
1
0
commit 24d2dc387a46259f63df176cbaaee7e2dc187c97
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Sep 17 17:13:59 2016 -0700
Screeenshots page
Copying arm's screenshots page. Our interface looks the same so it would be
fine to keep these, but might fiddle with it when we move away from the Stem
styling.
---
docs/_static/buttons/resources/screenshots.xcf | Bin 0 -> 69094 bytes
.../buttons/resources/screenshots_large.png | Bin 0 -> 15450 bytes
docs/_static/buttons/screenshots.png | Bin 0 -> 29683 bytes
docs/_static/section/screenshots/config.png | Bin 0 -> 179183 bytes
docs/_static/section/screenshots/config_full.png | Bin 0 -> 603692 bytes
docs/_static/section/screenshots/connections.png | Bin 0 -> 133573 bytes
.../section/screenshots/connections_full.png | Bin 0 -> 557585 bytes
docs/_static/section/screenshots/interpreter.png | Bin 0 -> 269313 bytes
.../section/screenshots/interpreter_full.png | Bin 0 -> 726289 bytes
docs/_static/section/screenshots/main.png | Bin 0 -> 89546 bytes
docs/_static/section/screenshots/main_full.png | Bin 0 -> 335698 bytes
docs/_static/section/screenshots/torrc.png | Bin 0 -> 103308 bytes
docs/_static/section/screenshots/torrc_full.png | Bin 0 -> 531290 bytes
docs/contents.rst | 1 +
docs/index.rst | 15 +++++++++++
docs/screenshots.rst | 28 +++++++++++++++++++++
16 files changed, 44 insertions(+)
diff --git a/docs/_static/buttons/resources/screenshots.xcf b/docs/_static/buttons/resources/screenshots.xcf
new file mode 100644
index 0000000..8d3bf05
Binary files /dev/null and b/docs/_static/buttons/resources/screenshots.xcf differ
diff --git a/docs/_static/buttons/resources/screenshots_large.png b/docs/_static/buttons/resources/screenshots_large.png
new file mode 100644
index 0000000..670ba9d
Binary files /dev/null and b/docs/_static/buttons/resources/screenshots_large.png differ
diff --git a/docs/_static/buttons/screenshots.png b/docs/_static/buttons/screenshots.png
new file mode 100644
index 0000000..6979733
Binary files /dev/null and b/docs/_static/buttons/screenshots.png differ
diff --git a/docs/_static/section/screenshots/config.png b/docs/_static/section/screenshots/config.png
new file mode 100644
index 0000000..bfc8b12
Binary files /dev/null and b/docs/_static/section/screenshots/config.png differ
diff --git a/docs/_static/section/screenshots/config_full.png b/docs/_static/section/screenshots/config_full.png
new file mode 100644
index 0000000..d04f412
Binary files /dev/null and b/docs/_static/section/screenshots/config_full.png differ
diff --git a/docs/_static/section/screenshots/connections.png b/docs/_static/section/screenshots/connections.png
new file mode 100644
index 0000000..8140b16
Binary files /dev/null and b/docs/_static/section/screenshots/connections.png differ
diff --git a/docs/_static/section/screenshots/connections_full.png b/docs/_static/section/screenshots/connections_full.png
new file mode 100644
index 0000000..5f5f2ad
Binary files /dev/null and b/docs/_static/section/screenshots/connections_full.png differ
diff --git a/docs/_static/section/screenshots/interpreter.png b/docs/_static/section/screenshots/interpreter.png
new file mode 100644
index 0000000..3a09ad4
Binary files /dev/null and b/docs/_static/section/screenshots/interpreter.png differ
diff --git a/docs/_static/section/screenshots/interpreter_full.png b/docs/_static/section/screenshots/interpreter_full.png
new file mode 100644
index 0000000..045ebc0
Binary files /dev/null and b/docs/_static/section/screenshots/interpreter_full.png differ
diff --git a/docs/_static/section/screenshots/main.png b/docs/_static/section/screenshots/main.png
new file mode 100644
index 0000000..db8e6cd
Binary files /dev/null and b/docs/_static/section/screenshots/main.png differ
diff --git a/docs/_static/section/screenshots/main_full.png b/docs/_static/section/screenshots/main_full.png
new file mode 100644
index 0000000..ba1d982
Binary files /dev/null and b/docs/_static/section/screenshots/main_full.png differ
diff --git a/docs/_static/section/screenshots/torrc.png b/docs/_static/section/screenshots/torrc.png
new file mode 100644
index 0000000..fdd822e
Binary files /dev/null and b/docs/_static/section/screenshots/torrc.png differ
diff --git a/docs/_static/section/screenshots/torrc_full.png b/docs/_static/section/screenshots/torrc_full.png
new file mode 100644
index 0000000..3263a47
Binary files /dev/null and b/docs/_static/section/screenshots/torrc_full.png differ
diff --git a/docs/contents.rst b/docs/contents.rst
index 4f04878..fb388c4 100644
--- a/docs/contents.rst
+++ b/docs/contents.rst
@@ -6,4 +6,5 @@ Contents
change_log
download
+ screenshots
diff --git a/docs/index.rst b/docs/index.rst
index 6cf8d55..785485e 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -3,6 +3,21 @@ Welcome to Nyx!
Nyx is a command line interface for `Tor <https://www.torproject.org/>`_, providing detailed real-time relaying information. With it you can view bandwidth usage, connections, logs, and much more. Nyx's latest version is **1.4.5** (released April 28th, 2012).
+.. Main Nyx Logo
+ Source: Oxygen (http://www.oxygen-icons.org/)
+ Author: Andrea Joseph
+ License: CCv3 (A, SA) - http://creativecommons.org/licenses/by-sa/3.0/
+ File: Oxygen/128x128/apps/utilities-system-monitor.png
+
+.. Source: Crystal (http://www.everaldo.com/crystal/)
+ Author: Everaldo Coelho (http://www.everaldo.com/)
+ License: LGPL v2
+ File: Crystal/128x128/filesystems/desktop.png
+ Crystal/128x128/filesystems/chardevice.png
+
+.. image:: /_static/buttons/screenshots.png
+ :target: screenshots.html
+
.. Source: Nuovo (http://www.silvestre.com.ar/?p=5)
Author: Silvestre Herrera (http://www.silvestre.com.ar/)
License: GPL v2
diff --git a/docs/screenshots.rst b/docs/screenshots.rst
new file mode 100644
index 0000000..e101871
--- /dev/null
+++ b/docs/screenshots.rst
@@ -0,0 +1,28 @@
+Screenshots
+===========
+
+.. image:: /_static/section/screenshots/main.png
+ :target: _static/section/screenshots/main_full.png
+
+**Bandwidth graph and event log**
+
+.. image:: /_static/section/screenshots/connections.png
+ :target: _static/section/screenshots/connections_full.png
+
+**Relay connection listing**
+
+.. image:: /_static/section/screenshots/config.png
+ :target: _static/section/screenshots/config_full.png
+
+**Configuration Editor**
+
+.. image:: /_static/section/screenshots/torrc.png
+ :target: _static/section/screenshots/torrc_full.png
+
+**Torrc**
+
+.. image:: /_static/section/screenshots/interpreter.png
+ :target: _static/section/screenshots/interpreter_full.png
+
+**Interactive Interpreter**
+
1
0