[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r23727: {arm} fix: basing man page filtering on tor's available config opt (in arm/trunk/src: . util)
Author: atagar
Date: 2010-10-31 03:44:46 +0000 (Sun, 31 Oct 2010)
New Revision: 23727
Modified:
arm/trunk/src/starter.py
arm/trunk/src/util/torConfig.py
Log:
fix: basing man page filtering on tor's available config options (more accurate, and doesn't exclude single line config entries)
Modified: arm/trunk/src/starter.py
===================================================================
--- arm/trunk/src/starter.py 2010-10-31 03:07:06 UTC (rev 23726)
+++ arm/trunk/src/starter.py 2010-10-31 03:44:46 UTC (rev 23727)
@@ -254,15 +254,15 @@
conn = TorCtl.TorCtl.connect(controlAddr, controlPort, authPassword)
if conn == None: sys.exit(1)
- # fetches descriptions for tor's configuration options
- _loadConfigurationDescriptions()
-
# initializing the connection may require user input (for the password)
# scewing the startup time results so this isn't counted
initTime = time.time() - startTime
controller = util.torTools.getConn()
controller.init(conn)
+ # fetches descriptions for tor's configuration options
+ _loadConfigurationDescriptions()
+
interface.controller.startTorMonitor(time.time() - initTime, expandedEvents, param["startup.blindModeEnabled"])
conn.close()
Modified: arm/trunk/src/util/torConfig.py
===================================================================
--- arm/trunk/src/util/torConfig.py 2010-10-31 03:07:06 UTC (rev 23726)
+++ arm/trunk/src/util/torConfig.py 2010-10-31 03:44:46 UTC (rev 23727)
@@ -110,6 +110,13 @@
else:
manCallResults = sysTools.call("man tor")
+ # Fetches all options available with this tor instance. This isn't
+ # vital, and the validOptions are left empty if the call fails.
+ conn, validOptions = torTools.getConn(), []
+ configOptionQuery = conn.getInfo("config/names").strip().split("\n")
+ if configOptionQuery:
+ validOptions = [line[:line.find(" ")].lower() for line in configOptionQuery]
+
lastOption, lastArg = None, None
lastDescription = ""
for line in manCallResults:
@@ -122,11 +129,12 @@
isOptIndent = line.startswith(" " * MAN_OPT_INDENT) and line[MAN_OPT_INDENT] != " "
if isOptIndent:
- # Most lines with this indent that aren't config options won't have
- # any description set at this point (not a perfect filter, but cuts
- # down on the noise).
+ # Filters the line based on if the option is recognized by tor or
+ # not. This isn't necessary for arm, so if unable to make the check
+ # then we skip filtering (no loss, the map will just have some extra
+ # noise).
strippedDescription = lastDescription.strip()
- if lastOption and strippedDescription:
+ if lastOption and (not validOptions or lastOption.lower() in validOptions):
CONFIG_DESCRIPTIONS[lastOption.lower()] = (lastArg, strippedDescription)
lastDescription = ""