aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2013-11-07 14:42:58 -0500
committerNick Mathewson <nickm@torproject.org>2013-11-07 14:42:58 -0500
commit940d286a7493ba890f89f17cc5c70c3e37a7ccd0 (patch)
treeb7ab281db51dd27634db8c8de810594aba4939b0
parent86cfc64d4565187250c8b92d25c24a1c5a0bec0d (diff)
downloadtor-940d286a7493ba890f89f17cc5c70c3e37a7ccd0.tar
tor-940d286a7493ba890f89f17cc5c70c3e37a7ccd0.tar.gz
Documentation and tests for 10060
-rw-r--r--changes/ticket100605
-rw-r--r--doc/tor.1.txt5
-rwxr-xr-xsrc/test/test_cmdline_args.py16
3 files changed, 23 insertions, 3 deletions
diff --git a/changes/ticket10060 b/changes/ticket10060
index 6ad0feb04..867c46436 100644
--- a/changes/ticket10060
+++ b/changes/ticket10060
@@ -1,6 +1,5 @@
o Minor features:
- - Adding --allow-missing-torrc commandline option
- that allows Tor to run if configuration file specified
- by -f is not available, but default torrc is.
+ - Adding --allow-missing-torrc commandline option that allows Tor to
+ run if configuration file specified by -f is not available.
Implements ticket 10060.
diff --git a/doc/tor.1.txt b/doc/tor.1.txt
index 82f4e3376..b457ee5a7 100644
--- a/doc/tor.1.txt
+++ b/doc/tor.1.txt
@@ -55,6 +55,11 @@ COMMAND-LINE OPTIONS
configuration file, and by those on the command line. (Default:
@CONFDIR@/torrc-defaults.)
+[[opt-ignore-missing-torrc]] **--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.
+
[[opt-hash-password]] **--hash-password** __PASSWORD__::
Generates a hashed password for control port access.
diff --git a/src/test/test_cmdline_args.py b/src/test/test_cmdline_args.py
index 2213bb570..e8edaa026 100755
--- a/src/test/test_cmdline_args.py
+++ b/src/test/test_cmdline_args.py
@@ -60,6 +60,10 @@ def strip_log_junk(line):
return ""+line
return m.group(2).strip()
+def randstring(entropy_bytes):
+ s = os.urandom(entropy_bytes)
+ return binascii.b2a_hex(s)
+
class CmdlineTests(unittest.TestCase):
def test_version(self):
@@ -247,5 +251,17 @@ class CmdlineTests(unittest.TestCase):
"ORPort 9003",
"SocksPort 9090"])
+ def test_missing_torrc(self):
+ fname = "nonexistent_file_"+randstring(8)
+ out = run_tor(["-f", fname, "--verify-config"], failure=True)
+ ln = [ strip_log_junk(l) for l in lines(out) ]
+ self.assert_("Unable to open configuration file" in ln[-2])
+ self.assert_("Reading config failed" in ln[-1])
+
+ out = run_tor(["-f", fname, "--verify-config", "--ignore-missing-torrc"])
+ ln = [ strip_log_junk(l) for l in lines(out) ]
+ self.assert_(", using reasonable defaults" in ln[-2])
+ self.assert_("Configuration was valid" in ln[-1])
+
if __name__ == '__main__':
unittest.main()