浏览代码

Implementing --allow-missing-torrc CLI option.

rl1987 12 年之前
父节点
当前提交
86cfc64d45
共有 3 个文件被更改,包括 18 次插入2 次删除
  1. 6 0
      changes/ticket10060
  2. 4 0
      doc/tor.1.txt
  3. 8 2
      src/or/config.c

+ 6 - 0
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.
+

+ 4 - 0
doc/tor.1.txt

@@ -45,6 +45,10 @@ COMMAND-LINE OPTIONS
     options. (Default: $HOME/.torrc, or @CONFDIR@/torrc if that file is not
     options. (Default: $HOME/.torrc, or @CONFDIR@/torrc if that file is not
     found)
     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__::
 [[opt-defaults-torrc]] **--defaults-torrc** __FILE__::
     Specify a file in which to find default values for Tor options.  The
     Specify a file in which to find default values for Tor options.  The
     contents of this file are overridden by those in the regular
     contents of this file are overridden by those in the regular

+ 8 - 2
src/or/config.c

@@ -1816,6 +1816,7 @@ static const struct {
   int takes_argument;
   int takes_argument;
 } CMDLINE_ONLY_OPTIONS[] = {
 } CMDLINE_ONLY_OPTIONS[] = {
   { "-f",                     1 },
   { "-f",                     1 },
+  { "--allow-missing-torrc",  0 },
   { "--defaults-torrc",       1 },
   { "--defaults-torrc",       1 },
   { "--hash-password",        1 },
   { "--hash-password",        1 },
   { "--dump-config",          1 },
   { "--dump-config",          1 },
@@ -4016,8 +4017,13 @@ options_init_from_torrc(int argc, char **argv)
   } else {
   } else {
     cf_defaults = load_torrc_from_disk(cmdline_only_options, 1);
     cf_defaults = load_torrc_from_disk(cmdline_only_options, 1);
     cf = load_torrc_from_disk(cmdline_only_options, 0);
     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,
   retval = options_init_from_string(cf_defaults, cf, command, command_arg,