aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/ticket100606
-rw-r--r--doc/tor.1.txt4
-rw-r--r--src/or/config.c10
3 files changed, 18 insertions, 2 deletions
diff --git a/changes/ticket10060 b/changes/ticket10060
new file mode 100644
index 000000000..6ad0feb04
--- /dev/null
+++ b/changes/ticket10060
@@ -0,0 +1,6 @@
+ 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.
+ Implements ticket 10060.
+
diff --git a/doc/tor.1.txt b/doc/tor.1.txt
index 86928718a..82f4e3376 100644
--- a/doc/tor.1.txt
+++ b/doc/tor.1.txt
@@ -45,6 +45,10 @@ COMMAND-LINE OPTIONS
options. (Default: $HOME/.torrc, or @CONFDIR@/torrc if that file is not
found)
+[[opt-allow-missing-torrc]] **--allow-missing-torrc**::
+ Do not require that configuration file specified by **-f** exist if
+ default torrc can be accessed.
+
[[opt-defaults-torrc]] **--defaults-torrc** __FILE__::
Specify a file in which to find default values for Tor options. The
contents of this file are overridden by those in the regular
diff --git a/src/or/config.c b/src/or/config.c
index 5fc32153e..57d6dcdc0 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -1816,6 +1816,7 @@ static const struct {
int takes_argument;
} CMDLINE_ONLY_OPTIONS[] = {
{ "-f", 1 },
+ { "--allow-missing-torrc", 0 },
{ "--defaults-torrc", 1 },
{ "--hash-password", 1 },
{ "--dump-config", 1 },
@@ -4016,8 +4017,13 @@ options_init_from_torrc(int argc, char **argv)
} else {
cf_defaults = load_torrc_from_disk(cmdline_only_options, 1);
cf = load_torrc_from_disk(cmdline_only_options, 0);
- if (!cf)
- goto err;
+ if (!cf) {
+ if (config_line_find(cmdline_only_options, "--allow-missing-torrc")) {
+ cf = tor_strdup("");
+ } else {
+ goto err;
+ }
+ }
}
retval = options_init_from_string(cf_defaults, cf, command, command_arg,