소스 검색

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,