Przeglądaj źródła

Implementing --allow-missing-torrc CLI option.

rl1987 12 lat temu
rodzic
commit
86cfc64d45
3 zmienionych plików z 18 dodań i 2 usunięć
  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,