diff --git a/ChangeLog b/ChangeLog index eb30e3688c..946a9ae7b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -39,6 +39,8 @@ Changes in version 0.2.0.10-alpha - 2007-1?-?? how skewed they are, and how much this matters. - When we have a certificate for an authority, believe that certificate's claims about the authority's IP address. + - New --quiet command-line option to suppress the default console log. + Good in combination with --hash-password. o Minor features (controller): - When reporting clock skew, and we only have a lower bound on the amount diff --git a/doc/TODO b/doc/TODO index 045a0484f0..a63925d850 100644 --- a/doc/TODO +++ b/doc/TODO @@ -97,7 +97,7 @@ Things we'd like to do in 0.2.0.x: unreachable is bunk -- it's leftover from the time when all servers ran 24/7. now it triggers every time a server goes away and then returns before the old descriptor has expired. - - add a --quiet commandline option that suppresses logs. useful + o add a --quiet commandline option that suppresses logs. useful for --hashed-password and maybe others. - Tor logs the libevent version on startup, for debugging purposes. This is great. But it does this before configuring the logs, so diff --git a/src/or/config.c b/src/or/config.c index 71c6fef9f3..7dd4042a9b 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -1195,7 +1195,8 @@ config_get_commandlines(int argc, char **argv, config_line_t **result) continue; } else if (!strcmp(argv[i],"--list-fingerprint") || !strcmp(argv[i],"--verify-config") || - !strcmp(argv[i],"--ignore-missing-torrc")) { + !strcmp(argv[i],"--ignore-missing-torrc") || + !strcmp(argv[i],"--quiet")) { i += 1; /* command-line option. ignore it. */ continue; } else if (!strcmp(argv[i],"--nt-service") || @@ -1203,6 +1204,7 @@ config_get_commandlines(int argc, char **argv, config_line_t **result) i += 1; continue; } + if (i == argc-1) { log_warn(LD_CONFIG,"Command-line option '%s' with no value. Failing.", argv[i]); diff --git a/src/or/main.c b/src/or/main.c index 08b5e805eb..ea09bf524d 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -1718,6 +1718,7 @@ handle_signals(int is_parent) tor_init(int argc, char *argv[]) { char buf[256]; + int i, quiet = 0; time_of_process_start = time(NULL); if (!connection_array) connection_array = smartlist_create(); @@ -1737,8 +1738,16 @@ tor_init(int argc, char *argv[]) addressmap_init(); /* Init the client dns cache. Do it always, since it's * cheap. */ - /* give it somewhere to log to initially */ - add_temp_log(); + /* We search for the "quiet" option first, since it decides whether we + * will log anything at all to the command line. */ + for (i=1;i