commit 5f2ca351e0a70565e4d58545ddbbd7b79e357262
Author: Damian Johnson <[email protected]>
Date: Fri Nov 20 09:42:18 2015 -0800
Update config summaries for the latest tor manual
Arm's configuration summaries were written years ago. No surprise tor's man
page has changed since then, adding new options and dropping others.
Filling in
the gaps and enabling the test that checks we're in sync.
---
stem/manual.cfg | 150 ++++++++++++++++++++++++++++++++++++++++-----------
stem/manual.py | 14 ++---
test/unit/manual.py | 19 ++++---
3 files changed, 137 insertions(+), 46 deletions(-)
diff --git a/stem/manual.cfg b/stem/manual.cfg
index f7a29c0..512501e 100644
--- a/stem/manual.cfg
+++ b/stem/manual.cfg
@@ -22,7 +22,7 @@ manual.important User
manual.important Bridge
manual.important ExcludeNodes
manual.important MaxCircuitDirtiness
-manual.important SocksPort
+manual.important SOCKSPort
manual.important UseBridges
manual.important BridgeRelay
@@ -50,12 +50,21 @@ manual.summary.RelayBandwidthRate Average bandwidth usage
limit for relaying
manual.summary.RelayBandwidthBurst Maximum bandwidth usage limit for relaying
manual.summary.PerConnBWRate Average relayed bandwidth limit per connection
manual.summary.PerConnBWBurst Maximum relayed bandwidth limit per connection
+manual.summary.ClientTransportPlugin Proxy when establishing bridge connections
+manual.summary.ServerTransportPlugin Proxy when servicing bridge connections
+manual.summary.ServerTransportListenAddr Endpoint for bridge's pluggable
transport proxy
+manual.summary.ServerTransportOptions Additional arguments for bridge's proxy
+manual.summary.ExtORPort Endpoint for extended ORPort connections
+manual.summary.ExtORPortCookieAuthFile Location of the ExtORPort's
authentication cookie
+manual.summary.ExtORPortCookieAuthFileGroupReadable Group read permissions for
the ExtORPort's authentication cookie
manual.summary.ConnLimit Minimum number of file descriptors for Tor to start
+manual.summary.DisableNetwork Don't accept non-controller connections
manual.summary.ConstrainedSockets Shrinks sockets to ConstrainedSockSize
manual.summary.ConstrainedSockSize Limit for the received and transmit buffers
of sockets
manual.summary.ControlPort Port providing access to tor controllers (nyx,
vidalia, etc)
manual.summary.ControlListenAddress Address providing controller access
manual.summary.ControlSocket Socket providing controller access
+manual.summary.ControlSocketsGroupWritable Group read permissions for the
control socket
manual.summary.HashedControlPassword Hash of the password for authenticating
to the control port
manual.summary.CookieAuthentication If set, authenticates controllers via a
cookie
manual.summary.CookieAuthFile Location of the authentication cookie
@@ -63,43 +72,49 @@ manual.summary.CookieAuthFileGroupReadable Group read
permissions for the authen
manual.summary.ControlPortWriteToFile Path for a file tor writes containing
its control port
manual.summary.ControlPortFileGroupReadable Group read permissions for the
control port file
manual.summary.DataDirectory Location for storing runtime data (state, keys,
etc)
-manual.summary.DirServer Alternative directory authorities
+manual.summary.FallbackDir Fallback when unable to retrieve descriptor
information
+manual.summary.DirAuthority Alternative directory authorities
+manual.summary.DirAuthorityFallbackRate Rate at which to use fallback directory
manual.summary.AlternateDirAuthority Alternative directory authorities
(consensus only)
-manual.summary.AlternateHSAuthority Alternative directory authorities (hidden
services only)
manual.summary.AlternateBridgeAuthority Alternative directory authorities
(bridges only)
manual.summary.DisableAllSwap Locks all allocated memory so they can't be
paged out
+manual.summary.DisableDebuggerAttachment Limit information applications can
retrieve about the process
manual.summary.FetchDirInfoEarly Keeps consensus information up to date, even
if unnecessary
manual.summary.FetchDirInfoExtraEarly Updates consensus information when it's
first available
manual.summary.FetchHidServDescriptors Toggles if hidden service descriptors
are fetched automatically or not
manual.summary.FetchServerDescriptors Toggles if the consensus is fetched
automatically or not
manual.summary.FetchUselessDescriptors Toggles if relay descriptors are
fetched when they aren't strictly necessary
-manual.summary.Group GID for the process when started
-manual.summary.HttpProxy HTTP proxy for connecting to tor
-manual.summary.HttpProxyAuthenticator Authentication credentials for HttpProxy
-manual.summary.HttpsProxy SSL proxy for connecting to tor
-manual.summary.HttpsProxyAuthenticator Authentication credentials for
HttpsProxy
+manual.summary.HTTPProxy HTTP proxy for connecting to tor
+manual.summary.HTTPProxyAuthenticator Authentication credentials for HTTPProxy
+manual.summary.HTTPSProxy SSL proxy for connecting to tor
+manual.summary.HTTPSProxyAuthenticator Authentication credentials for
HTTPSProxy
+manual.summary.Sandbox Run within a syscall sandbox
manual.summary.Socks4Proxy SOCKS 4 proxy for connecting to tor
manual.summary.Socks5Proxy SOCKS 5 for connecting to tor
manual.summary.Socks5ProxyUsername Username for connecting to the Socks5Proxy
manual.summary.Socks5ProxyPassword Password for connecting to the Socks5Proxy
+manual.summary.SocksSocketsGroupWritable Group write permissions for the socks
socket
manual.summary.KeepalivePeriod Rate at which to send keepalive packets
manual.summary.Log Runlevels and location for tor logging
manual.summary.LogMessageDomains Includes a domain when logging messages
manual.summary.OutboundBindAddress Sets the IP used for connecting to tor
manual.summary.PidFile Path for a file tor writes containing its process id
manual.summary.ProtocolWarnings Toggles if protocol errors give warnings or not
+manual.summary.PredictedPortsRelevanceTime Duration to ensure circuits for
previously used ports remain available
manual.summary.RunAsDaemon Toggles if tor runs as a daemon process
manual.summary.LogTimeGranularity limits granularity of log message timestamps
+manual.summary.TruncateLogFile Overwrites log file rather than appending when
restarted
+manual.summary.SyslogIdentityTag Tag logs appended to the syslog as being from
tor
manual.summary.SafeLogging Toggles if logs are scrubbed of sensitive
information
manual.summary.User UID for the process when started
manual.summary.HardwareAccel Toggles if tor attempts to use hardware
acceleration
manual.summary.AccelName OpenSSL engine name for crypto acceleration
manual.summary.AccelDir Crypto acceleration library path
manual.summary.AvoidDiskWrites Toggles if tor avoids frequently writing to disk
-manual.summary.TunnelDirConns Toggles if directory requests can be made over
the ORPort
-manual.summary.PreferTunneledDirConns Avoids directory requests that can't be
made over the ORPort if set
manual.summary.CircuitPriorityHalflife Overwrite method for prioritizing
traffic among relayed connections
manual.summary.DisableIOCP Disables use of the Windows IOCP networking API
+manual.summary.UserspaceIOCPBuffers Disable kernel-space IOCP TCP buffers
+manual.summary.UseFilteringSSLBufferevents Use SSL for a chain of bufferevents
manual.summary.CountPrivateBandwidth Applies rate limiting to private IP
addresses
# Client Config Options
@@ -114,12 +129,15 @@ manual.summary.CircuitStreamTimeout Timeout for shifting
streams among circuits
manual.summary.ClientOnly Ensures that we aren't used as a relay or directory
mirror
manual.summary.ExcludeNodes Relays or locales never to be used in circuits
manual.summary.ExcludeExitNodes Relays or locales never to be used for exits
+manual.summary.GeoIPExcludeUnknown Don't use relays with an unknown locale in
circuits
manual.summary.ExitNodes Preferred final hop for circuits
manual.summary.EntryNodes Preferred first hops for circuits
manual.summary.StrictNodes Never uses notes outside of Entry/ExitNodes
manual.summary.FascistFirewall Only make outbound connections on FirewallPorts
manual.summary.FirewallPorts Ports used by FascistFirewall
manual.summary.HidServAuth Authentication credentials for connecting to a
hidden service
+manual.summary.CloseHSClientCircuitsImmediatelyOnTimeout Close hidden service
circuits that timeout
+manual.summary.CloseHSServiceRendCircuitsImmediatelyOnTimeout Close hidden
service rendezvous circuits that timeout
manual.summary.ReachableAddresses Rules for bypassing the local firewall
manual.summary.ReachableDirAddresses Rules for bypassing the local firewall
(directory fetches)
manual.summary.ReachableORAddresses Rules for bypassing the local firewall (OR
connections)
@@ -127,27 +145,36 @@ manual.summary.LongLivedPorts Ports requiring highly
reliable relays
manual.summary.MapAddress Alias mappings for address requests
manual.summary.NewCircuitPeriod Period for considering the creation of new
circuits
manual.summary.MaxCircuitDirtiness Duration for reusing constructed circuits
+manual.summary.MaxClientCircuitsPending Number of circuits that can be in
construction at once
manual.summary.NodeFamily Define relays as belonging to a family
manual.summary.EnforceDistinctSubnets Prevent use of multiple relays from the
same subnet on a circuit
-manual.summary.SocksPort Port for using tor as a Socks proxy
-manual.summary.SocksListenAddress Address from which Socks connections can be
made
+manual.summary.SOCKSPort Port for using tor as a Socks proxy
+manual.summary.SOCKSListenAddress Address from which Socks connections can be
made
manual.summary.SocksPolicy Access policy for the pocks port
manual.summary.SocksTimeout Time until idle or unestablished socks connections
are closed
+manual.summary.TokenBucketRefillInterval Frequency at which exhausted
connections are checked for new traffic
manual.summary.TrackHostExits Maintains use of the same exit whenever
connecting to this destination
manual.summary.TrackHostExitsExpire Time until use of an exit for tracking
expires
manual.summary.UpdateBridgesFromAuthority Toggles fetching bridge descriptors
from the authorities
manual.summary.UseBridges Make use of configured bridges
manual.summary.UseEntryGuards Use guard relays for first hop
+manual.summary.UseEntryGuardsAsDirGuards Retrieve descriptors via guards when
able
+manual.summary.GuardfractionFile File containing information with duration of
our guards
+manual.summary.UseGuardFraction Take guardfraction into account for path
selection
manual.summary.NumEntryGuards Pool size of guard relays we'll select from
+manual.summary.NumDirectoryGuards Pool size of directory guards we'll select
from
+manual.summary.GuardLifetime Minimum time to keep entry guards
manual.summary.SafeSocks Toggles rejecting unsafe variants of the socks
protocol
manual.summary.TestSocks Provide notices for if socks connections are of the
safe or unsafe variants
manual.summary.WarnUnsafeSocks Toggle warning of unsafe socks connection
-manual.summary.VirtualAddrNetwork Address range used with MAPADDRESS
+manual.summary.VirtualAddrNetworkIPv4 IPv4 address range to use when needing a
virtual address
+manual.summary.VirtualAddrNetworkIPv6 IPv6 address range to use when needing a
virtual address
manual.summary.AllowNonRFC953Hostnames Toggles blocking invalid characters in
hostname resolution
manual.summary.AllowDotExit Toggles allowing exit notation in addresses
manual.summary.FastFirstHopPK Toggle public key usage for the first hop
manual.summary.TransPort Port for transparent proxying if the OS supports it
manual.summary.TransListenAddress Address from which transparent proxy
connections can be made
+manual.summary.TransProxyType Proxy type to be used
manual.summary.NATDPort Port for forwarding ipfw NATD connections
manual.summary.NATDListenAddress Address from which NATD forwarded connections
can be made
manual.summary.AutomapHostsOnResolve Map addresses ending with special
suffixes to virtual addresses
@@ -157,10 +184,27 @@ manual.summary.DNSListenAddress Address for performing
DNS resolution
manual.summary.ClientDNSRejectInternalAddresses Ignores DNS responses for
internal addresses
manual.summary.ClientRejectInternalAddresses Disables use of Tor for internal
connections
manual.summary.DownloadExtraInfo Toggles fetching of extra information about
relays
-manual.summary.FallbackNetworkstatusFile Path for a fallback cache of the
consensus
manual.summary.WarnPlaintextPorts Toggles warnings for using risky ports
manual.summary.RejectPlaintextPorts Prevents connections on risky ports
manual.summary.AllowSingleHopCircuits Makes use of single hop exits if able
+manual.summary.OptimisticData Use exits without confirmation that prior
connections succeeded
+manual.summary.Tor2webMode Establish non-anonymous hidden service connections
+manual.summary.Tor2webRendezvousPoints Rendezvous points to use for hidden
services when in Tor2webMode
+manual.summary.UseMicrodescriptors Retrieve microdescriptors rather than
server descriptors
+manual.summary.UseNTorHandshake Use ntor for establishing circuits with relays
+manual.summary.PathBiasCircThreshold Number of circuits through a guard before
applying bias checks
+manual.summary.PathBiasNoticeRate Fraction of circuits that must succeed
before logging a notice
+manual.summary.PathBiasWarnRate Fraction of circuits that must succeed before
logging a warning
+manual.summary.PathBiasExtremeRate Fraction of circuits that must succeed
before logging an error
+manual.summary.PathBiasDropGuards Drop guards failing to establish circuits
+manual.summary.PathBiasScaleThreshold Circuits through a guard before scaling
past observations down
+manual.summary.PathBiasUseThreshold Number of streams through a circuit before
applying bias checks
+manual.summary.PathBiasNoticeUseRate Fraction of streams that must succeed
before logging a notice
+manual.summary.PathBiasExtremeUseRate Fraction of streams that must succeed
before logging an error
+manual.summary.PathBiasScaleUseThreshold Streams through a circuit before
scaling past observations down
+manual.summary.ClientUseIPv6 Allow IPv6 connections to guards
+manual.summary.ClientPreferIPv6ORPort Prefer a guard's IPv6 rather than IPv4
endpoint
+manual.summary.PathsNeededToBuildCircuits Portion of relays to require
information for before making circuits
# Server Config Options
@@ -169,9 +213,11 @@ manual.summary.AllowSingleHopExits Toggles permitting use
of this relay as a sin
manual.summary.AssumeReachable Skips reachability test at startup
manual.summary.BridgeRelay Act as a bridge
manual.summary.ContactInfo Contact information for this relay
+manual.summary.ExitRelay Allow relaying of exit traffic
manual.summary.ExitPolicy Traffic destinations that can exit from this relay
manual.summary.ExitPolicyRejectPrivate Prevent exiting connection on the local
network
-manual.summary.MaxOnionsPending Decryption queue size
+manual.summary.IPv6Exit Allow clients to use us for IPv6 traffic
+manual.summary.MaxOnionQueueDelay Duration to reject new onionskins if we have
more than we can process
manual.summary.MyFamily Other relays this operator administers
manual.summary.Nickname Identifier for this relay
manual.summary.NumCPUs Number of processes spawned for decryption
@@ -181,8 +227,10 @@ manual.summary.PortForwarding Use UPnP or NAT-PMP if
needed to relay
manual.summary.PortForwardingHelper Executable for configuring port forwarding
manual.summary.PublishServerDescriptor Types of descriptors published
manual.summary.ShutdownWaitLength Delay before quitting after receiving a
SIGINT signal
+manual.summary.SSLKeyLifetime Lifetime for our link certificate
manual.summary.HeartbeatPeriod Rate at which an INFO level heartbeat message
is sent
manual.summary.AccountingMax Amount of traffic before hibernating
+manual.summary.AccountingRule Method to determine when the accounting limit is
reached
manual.summary.AccountingStart Duration of an accounting period
manual.summary.RefuseUnknownExits Prevents relays not in the consensus from
using us as an exit
manual.summary.ServerDNSResolvConfFile Overriding resolver config for DNS
queries we provide
@@ -193,48 +241,54 @@ manual.summary.ServerDNSTestAddresses Addresses to test
to see if valid DNS quer
manual.summary.ServerDNSAllowNonRFC953Hostnames Toggles if we reject DNS
queries with invalid characters
manual.summary.BridgeRecordUsageByCountry Tracks geoip information on bridge
usage
manual.summary.ServerDNSRandomizeCase Toggles DNS query case randomization
-manual.summary.GeoIPFile Path to file containing geoip information
+manual.summary.GeoIPFile Path to file containing IPv4 geoip information
+manual.summary.GeoIPv6File Path to file containing IPv6 geoip information
+manual.summary.TLSECGroup EC group for incoming SSL connections
manual.summary.CellStatistics Toggles storing circuit queue duration to disk
manual.summary.DirReqStatistics Toggles storing network status counts and
performance to disk
manual.summary.EntryStatistics Toggles storing client connection counts to disk
manual.summary.ExitPortStatistics Toggles storing traffic and port usage data
to disk
manual.summary.ConnDirectionStatistics Toggles storing connection use to disk
+manual.summary.HiddenServiceStatistics Toggles storing hidden service stats to
disk
manual.summary.ExtraInfoStatistics Publishes statistic data in the extra-info
documents
+manual.summary.ExtendAllowPrivateAddresses Allow circuits to be extended to
the local network
+manual.summary.MaxMemInQueues Threshold at which tor will terminate circuits
to avoid running out of memory
+manual.summary.SigningKeyLifetime Duration the Ed25519 signing key is valid for
+manual.summary.OfflineMasterKey Don't generate the master secret key
# Directory Server Options
-manual.summary.AuthoritativeDirectory Act as a directory authority
manual.summary.DirPortFrontPage Publish this html file on the DirPort
-manual.summary.V1AuthoritativeDirectory Generates a version 1 consensus
-manual.summary.V2AuthoritativeDirectory Generates a version 2 consensus
-manual.summary.V3AuthoritativeDirectory Generates a version 3 consensus
-manual.summary.VersioningAuthoritativeDirectory Provides opinions on
recommended versions of tor
-manual.summary.NamingAuthoritativeDirectory Provides opinions on fingerprint
to nickname bindings
-manual.summary.HSAuthoritativeDir Toggles accepting hidden service descriptors
manual.summary.HidServDirectoryV2 Toggles accepting version 2 hidden service
descriptors
-manual.summary.BridgeAuthoritativeDir Acts as a bridge authority
-manual.summary.MinUptimeHidServDirectoryV2 Required uptime before accepting
hidden service directory
manual.summary.DirPort Port for directory connections
manual.summary.DirListenAddress Address the directory service is bound to
manual.summary.DirPolicy Access policy for the DirPort
-manual.summary.FetchV2Networkstatus Get the obsolete V2 consensus
# Directory Authority Server Options
-manual.summary.RecommendedVersions Tor versions believed to be safe
+manual.summary.AuthoritativeDirectory Act as a directory authority
+manual.summary.V3AuthoritativeDirectory Generates a version 3 consensus
+manual.summary.VersioningAuthoritativeDirectory Provides opinions on
recommended versions of tor
+manual.summary.RecommendedVersions Suggested versions of tor
+manual.summary.RecommendedPackageVersions Suggested versions of applications
other than tor
manual.summary.RecommendedClientVersions Tor versions believed to be safe for
clients
+manual.summary.BridgeAuthoritativeDir Acts as a bridge authority
+manual.summary.MinUptimeHidServDirectoryV2 Required uptime before accepting
hidden service directory
manual.summary.RecommendedServerVersions Tor versions believed to be safe for
relays
manual.summary.ConsensusParams Params entry of the networkstatus vote
manual.summary.DirAllowPrivateAddresses Toggles allowing arbitrary input or
non-public IPs in descriptors
-manual.summary.AuthDirBadDir Relays to be flagged as bad directory caches
manual.summary.AuthDirBadExit Relays to be flagged as bad exits
manual.summary.AuthDirInvalid Relays from which the valid flag is withheld
manual.summary.AuthDirReject Relays to be dropped from the consensus
-manual.summary.AuthDirListBadDirs Toggles if we provide an opinion on bad
directory caches
+manual.summary.AuthDirBadExitCCs Countries for which to flag all relays as bad
exits
+manual.summary.AuthDirInvalidCCs Countries for which the valid flag is withheld
+manual.summary.AuthDirRejectCCs Countries for which relays aren't accepted
into the consensus
manual.summary.AuthDirListBadExits Toggles if we provide an opinion on bad
exits
-manual.summary.AuthDirRejectUnlisted Rejects further relay descriptors
manual.summary.AuthDirMaxServersPerAddr Limit on the number of relays accepted
per ip
manual.summary.AuthDirMaxServersPerAuthAddr Limit on the number of relays
accepted per an authority's ip
+manual.summary.AuthDirFastGuarantee Advertised rate at which the Fast flag is
granted
+manual.summary.AuthDirGuardBWGuarantee Advertised rate necessary to be a guard
+manual.summary.AuthDirPinKeys Don't accept descriptors with conflicting
identity keypairs
manual.summary.BridgePassword Password for requesting bridge information
manual.summary.V3AuthVotingInterval Consensus voting interval
manual.summary.V3AuthVoteDelay Wait time to collect votes of other authorities
@@ -242,7 +296,10 @@ manual.summary.V3AuthDistDelay Wait time to collect the
signatures of other auth
manual.summary.V3AuthNIntervalsValid Number of voting intervals a consensus is
valid for
manual.summary.V3BandwidthsFile Path to a file containing measured relay
bandwidths
manual.summary.V3AuthUseLegacyKey Signs consensus with both the current and
legacy keys
-manual.summary.RephistTrackTime Discards old, unchanged reliability
informaition
+manual.summary.RephistTrackTime Discards old, unchanged reliability information
+manual.summary.VoteOnHidServDirectoriesV2 Determines if the authority votes on
hidden service directories
+manual.summary.AuthDirHasIPv6Connectivity Descriptors can be retrieved over
the authority's IPv6 ORPort
+manual.summary.MinMeasuredBWsForAuthToIgnoreAdvertised Total measured value
before advertised bandwidths are treated as unreliable
# Hidden Service Options
@@ -251,7 +308,12 @@ manual.summary.HiddenServicePort Port the hidden service
is provided on
manual.summary.PublishHidServDescriptors Toggles automated publishing of the
hidden service to the rendezvous directory
manual.summary.HiddenServiceVersion Version for published hidden service
descriptors
manual.summary.HiddenServiceAuthorizeClient Restricts access to the hidden
service
+manual.summary.HiddenServiceAllowUnknownPorts Allow rendezvous circuits on
unrecognized ports
+manual.summary.HiddenServiceMaxStreams Maximum streams per rendezvous circuit
+manual.summary.HiddenServiceMaxStreamsCloseCircuit Closes rendezvous circuits
that exceed the maximum number of streams
manual.summary.RendPostPeriod Period at which the rendezvous service
descriptors are refreshed
+manual.summary.HiddenServiceDirGroupReadable Group read permissions for the
hidden service directory
+manual.summary.HiddenServiceNumIntroductionPoints Number of introduction
points the hidden service will have
# Testing Network Options
@@ -259,6 +321,32 @@ manual.summary.TestingTorNetwork Overrides other options
to be a testing network
manual.summary.TestingV3AuthInitialVotingInterval Overrides
V3AuthVotingInterval for the first consensus
manual.summary.TestingV3AuthInitialVoteDelay Overrides
TestingV3AuthInitialVoteDelay for the first consensus
manual.summary.TestingV3AuthInitialDistDelay Overrides
TestingV3AuthInitialDistDelay for the first consensus
+manual.summary.TestingV3AuthVotingStartOffset Offset for the point at which
the authority votes
manual.summary.TestingAuthDirTimeToLearnReachability Delay until opinions are
given about which relays are running or not
manual.summary.TestingEstimatedDescriptorPropagationTime Delay before clients
attempt to fetch descriptors from directory caches
+manual.summary.TestingMinFastFlagThreshold Minimum value for the Fast flag
+manual.summary.TestingServerDownloadSchedule Schedule for when we should
download resources as a relay
+manual.summary.TestingClientDownloadSchedule Schedule for when we should
download resources as a client
+manual.summary.TestingServerConsensusDownloadSchedule Schedule for when we
should download the consensus as a relay
+manual.summary.TestingClientConsensusDownloadSchedule Schedule for when we
should download the consensus as a client
+manual.summary.TestingBridgeDownloadSchedule Schedule for when we should
download bridge descriptors
+manual.summary.TestingClientMaxIntervalWithoutRequest Maximum time to wait to
batch requests for missing descriptors
+manual.summary.TestingDirConnectionMaxStall Duration to let directory
connections stall before timing out
+manual.summary.TestingConsensusMaxDownloadTries Retries for downloading the
consensus
+manual.summary.TestingDescriptorMaxDownloadTries Retries for downloading
server descriptors
+manual.summary.TestingMicrodescMaxDownloadTries Retries for downloading
microdescriptors
+manual.summary.TestingCertMaxDownloadTries Retries for downloading authority
certificates
+manual.summary.TestingDirAuthVoteExit Relays to give the Exit flag to
+manual.summary.TestingDirAuthVoteExitIsStrict Only grant the Exit flag to
relays listed by TestingDirAuthVoteExit
+manual.summary.TestingDirAuthVoteGuard Relays to give the Guard flag to
+manual.summary.TestingDirAuthVoteGuardIsStrict Only grant the Guard flag to
relays listed by TestingDirAuthVoteGuard
+manual.summary.TestingDirAuthVoteHSDir Relays to give the HSDir flag to
+manual.summary.TestingDirAuthVoteHSDirIsStrict Only grant the HSDir flag to
relays listed by TestingDirAuthVoteHSDir
+manual.summary.TestingEnableConnBwEvent Allow controllers to request CONN_BW
events
+manual.summary.TestingEnableCellStatsEvent Allow controllers to request
CELL_STATS events
+manual.summary.TestingEnableTbEmptyEvent Allow controllers to request TB_EMPTY
events
+manual.summary.TestingMinExitFlagThreshold Lower bound for assigning the Exit
flag
+manual.summary.TestingLinkCertifetime Duration of our ed25519 certificate
+manual.summary.TestingAuthKeyLifetime Duration for our ed25519 signing key
+manual.summary.TestingLinkKeySlop Time before expiration that we replace our
ed25519 key
diff --git a/stem/manual.py b/stem/manual.py
index 52f25e6..cf1be50 100644
--- a/stem/manual.py
+++ b/stem/manual.py
@@ -53,15 +53,15 @@ CATEGORY_SECTIONS = {
@lru_cache()
-def _config():
+def _config(lowercase = True):
"""
Provides a dictionary for our manual.cfg. This has a couple categories...
- * manual.important (list) - list of lowercase configuration options
- considered to be important
+ * manual.important (list) - configuration options considered to be
important
+ * manual.summary.* (str) - summary descriptions of config options
- * manual.summary.* (str) - summary descriptions of config options, key uses
- the lowercase configuration option
+ :param bool lowercase: uses lowercase keys if **True** to allow for case
+ insensitive lookups
"""
config = stem.util.conf.Config()
@@ -69,8 +69,8 @@ def _config():
try:
config.load(config_path)
- config_dict = dict([(key.lower(), config.get_value(key)) for key in
config.keys()])
- config_dict['manual.important'] = [name.lower() for name in
config.get_value('manual.important', [], multiple = True)]
+ config_dict = dict([(key.lower() if lowercase else key,
config.get_value(key)) for key in config.keys()])
+ config_dict['manual.important'] = [name.lower() if lowercase else name for
name in config.get_value('manual.important', [], multiple = True)]
return config_dict
except Exception as exc:
stem.util.log.warn("BUG: stem failed to load its internal manual
information from '%s': %s" % (config_path, exc))
diff --git a/test/unit/manual.py b/test/unit/manual.py
index c9e682a..60ae291 100644
--- a/test/unit/manual.py
+++ b/test/unit/manual.py
@@ -117,17 +117,20 @@ class TestManual(unittest.TestCase):
test.runner.skip(self, '(unavailable on windows)')
return
- test.runner.skip(self, 'coming soon!') # TODO: yup, got a few to fill
in...
-
manual = stem.manual.Manual.from_man(TEST_MAN_PAGE)
- missing_summary = []
+ present = set(manual.config_options.keys())
+ expected = set([key[15:] for key in stem.manual._config(lowercase = False)
if key.startswith('manual.summary.')])
+
+ # TODO: The 'Recognized' config name is due to our man page being slightly
+ # malformed. Sending a tor patch later to fix it.
- for config_option in manual.config_options.values():
- if not config_option.summary and config_option.category !=
Category.TESTING:
- missing_summary.append(config_option.name)
+ missing_options =
present.difference(expected).difference(set(['Recognized']))
+ extra_options = expected.difference(present)
- if missing_summary:
- self.fail("The following config options are missing summaries: %s" % ',
'.join(missing_summary))
+ if missing_options:
+ self.fail("The following config options are missing summaries: %s" % ',
'.join(missing_options))
+ elif extra_options:
+ self.fail("The following config options no longer exist in tor, so don't
need summaries: %s" % ', '.join(extra_options))
def test_attributes(self):
if stem.util.system.is_windows():
_______________________________________________
tor-commits mailing list
[email protected]
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits