|
@@ -1075,7 +1075,8 @@ config_get_commandlines(int argc, char **argv, config_line_t **result)
|
|
i += 2; /* command-line option with argument. ignore them. */
|
|
i += 2; /* command-line option with argument. ignore them. */
|
|
continue;
|
|
continue;
|
|
} else if (!strcmp(argv[i],"--list-fingerprint") ||
|
|
} else if (!strcmp(argv[i],"--list-fingerprint") ||
|
|
- !strcmp(argv[i],"--verify-config")) {
|
|
|
|
|
|
+ !strcmp(argv[i],"--verify-config") ||
|
|
|
|
+ !strcmp(argv[i],"--ignore-missing-torrc")) {
|
|
i += 1; /* command-line option. ignore it. */
|
|
i += 1; /* command-line option. ignore it. */
|
|
continue;
|
|
continue;
|
|
} else if (!strcmp(argv[i],"--nt-service") ||
|
|
} else if (!strcmp(argv[i],"--nt-service") ||
|
|
@@ -2967,6 +2968,7 @@ options_init_from_torrc(int argc, char **argv)
|
|
char *cf=NULL, *fname=NULL, *errmsg=NULL;
|
|
char *cf=NULL, *fname=NULL, *errmsg=NULL;
|
|
int i, retval;
|
|
int i, retval;
|
|
int using_default_torrc;
|
|
int using_default_torrc;
|
|
|
|
+ int ignore_missing_torrc;
|
|
static char **backup_argv;
|
|
static char **backup_argv;
|
|
static int backup_argc;
|
|
static int backup_argc;
|
|
|
|
|
|
@@ -3004,6 +3006,7 @@ options_init_from_torrc(int argc, char **argv)
|
|
/* learn config file name */
|
|
/* learn config file name */
|
|
fname = NULL;
|
|
fname = NULL;
|
|
using_default_torrc = 1;
|
|
using_default_torrc = 1;
|
|
|
|
+ ignore_missing_torrc = 0;
|
|
newoptions->command = CMD_RUN_TOR;
|
|
newoptions->command = CMD_RUN_TOR;
|
|
for (i = 1; i < argc; ++i) {
|
|
for (i = 1; i < argc; ++i) {
|
|
if (i < argc-1 && !strcmp(argv[i],"-f")) {
|
|
if (i < argc-1 && !strcmp(argv[i],"-f")) {
|
|
@@ -3014,6 +3017,8 @@ options_init_from_torrc(int argc, char **argv)
|
|
fname = tor_strdup(argv[i+1]);
|
|
fname = tor_strdup(argv[i+1]);
|
|
using_default_torrc = 0;
|
|
using_default_torrc = 0;
|
|
++i;
|
|
++i;
|
|
|
|
+ } else if (!strcmp(argv[i],"--ignore-missing-torrc")) {
|
|
|
|
+ ignore_missing_torrc = 1;
|
|
} else if (!strcmp(argv[i],"--list-fingerprint")) {
|
|
} else if (!strcmp(argv[i],"--list-fingerprint")) {
|
|
newoptions->command = CMD_LIST_FINGERPRINT;
|
|
newoptions->command = CMD_LIST_FINGERPRINT;
|
|
} else if (!strcmp(argv[i],"--hash-password")) {
|
|
} else if (!strcmp(argv[i],"--hash-password")) {
|
|
@@ -3053,7 +3058,7 @@ options_init_from_torrc(int argc, char **argv)
|
|
/* get config lines, assign them */
|
|
/* get config lines, assign them */
|
|
if (file_status(fname) != FN_FILE ||
|
|
if (file_status(fname) != FN_FILE ||
|
|
!(cf = read_file_to_str(fname,0,NULL))) {
|
|
!(cf = read_file_to_str(fname,0,NULL))) {
|
|
- if (using_default_torrc == 1) {
|
|
|
|
|
|
+ if (using_default_torrc == 1 || ignore_missing_torrc ) {
|
|
log(LOG_NOTICE, LD_CONFIG, "Configuration file \"%s\" not present, "
|
|
log(LOG_NOTICE, LD_CONFIG, "Configuration file \"%s\" not present, "
|
|
"using reasonable defaults.", fname);
|
|
"using reasonable defaults.", fname);
|
|
tor_free(fname); /* sets fname to NULL */
|
|
tor_free(fname); /* sets fname to NULL */
|