[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] Print the error message for --dump-config even if no arguments are given.
commit e89c200c47fdb6253ee99d3603e86a8f1bdbab8c
Author: rl1987 <rl1987@xxxxxxxxxxxxxxxx>
Date: Mon Apr 6 21:36:55 2015 +0300
Print the error message for --dump-config even if no arguments are given.
---
changes/bug15541 | 5 +++++
src/or/config.c | 21 ++++++++++++++++-----
src/or/main.c | 2 +-
3 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/changes/bug15541 b/changes/bug15541
new file mode 100644
index 0000000..f73ce5f
--- /dev/null
+++ b/changes/bug15541
@@ -0,0 +1,5 @@
+ o Minor bugfixes (interface):
+ - Print usage information for --dump-config when it is used without
+ an argument. Also, fix the error message to use different wording
+ and add newline at the end. Fixes bug 15541; bugfix on 0.2.5.1-alpha.
+
diff --git a/src/or/config.c b/src/or/config.c
index d65d35d..ddd20ee 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -1868,15 +1868,21 @@ options_act(const or_options_t *old_options)
return 0;
}
+typedef enum {
+ TAKES_NO_ARGUMENT = 0,
+ ARGUMENT_NECESSARY = 1,
+ ARGUMENT_OPTIONAL = 2
+} takes_argument_t;
+
static const struct {
const char *name;
- int takes_argument;
+ takes_argument_t takes_argument;
} CMDLINE_ONLY_OPTIONS[] = {
{ "-f", 1 },
{ "--allow-missing-torrc", 0 },
{ "--defaults-torrc", 1 },
{ "--hash-password", 1 },
- { "--dump-config", 1 },
+ { "--dump-config", ARGUMENT_OPTIONAL },
{ "--list-fingerprint", 0 },
{ "--verify-config", 0 },
{ "--ignore-missing-torrc", 0 },
@@ -1915,7 +1921,7 @@ config_parse_commandline(int argc, char **argv, int ignore_errors,
while (i < argc) {
unsigned command = CONFIG_LINE_NORMAL;
- int want_arg = 1;
+ takes_argument_t want_arg = ARGUMENT_NECESSARY;
int is_cmdline = 0;
int j;
@@ -1945,7 +1951,9 @@ config_parse_commandline(int argc, char **argv, int ignore_errors,
want_arg = 0;
}
- if (want_arg && i == argc-1) {
+ const int is_last = (i == argc-1);
+
+ if (want_arg == ARGUMENT_NECESSARY && is_last) {
if (ignore_errors) {
arg = strdup("");
} else {
@@ -1955,8 +1963,11 @@ config_parse_commandline(int argc, char **argv, int ignore_errors,
config_free_lines(front_cmdline);
return -1;
}
+ } else if (want_arg == ARGUMENT_OPTIONAL && is_last) {
+ arg = tor_strdup("");
} else {
- arg = want_arg ? tor_strdup(argv[i+1]) : strdup("");
+ arg = (want_arg != TAKES_NO_ARGUMENT) ? tor_strdup(argv[i+1]) :
+ tor_strdup("");
}
param = tor_malloc_zero(sizeof(config_line_t));
diff --git a/src/or/main.c b/src/or/main.c
index c0ca158..a3da148 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -2811,7 +2811,7 @@ do_dump_config(void)
} else if (!strcmp(arg, "full")) {
how = OPTIONS_DUMP_ALL;
} else {
- fprintf(stderr, "No recognizable option to --dump-config found!\n");
+ fprintf(stderr, "No valid argument to --dump-config found!\n");
fprintf(stderr, "Please select 'short', 'non-builtin', or 'full'.\n");
return -1;
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits