Explorar el Código

Add --hush switch.

New --hush command-line option similar to --quiet.  While --quiet disables all
logging to the console on startup, --hush limits the output to messages of
warning and error severity.


svn:r14222
Peter Palfrader hace 16 años
padre
commit
9d132fbde6
Se han modificado 5 ficheros con 21 adiciones y 8 borrados
  1. 3 0
      ChangeLog
  2. 2 2
      src/common/log.c
  3. 1 1
      src/common/log.h
  4. 2 1
      src/or/config.c
  5. 13 4
      src/or/main.c

+ 3 - 0
ChangeLog

@@ -47,6 +47,9 @@ Changes in version 0.2.1.1-alpha - 2008-??-??
       this accounted for over 40% of allocations from within Tor's code
       on a typical directory cache.
     - Lots of new unit tests.
+    - New --hush command-line option similar to --quiet.  While --quiet
+      disables all logging to the console on startup, --hush limits the
+      output to messages of warning and error severity.
 
   o Code simplifications and refactoring:
     - Refactor code using connection_ap_handshake_attach_circuit() to

+ 2 - 2
src/common/log.c

@@ -535,10 +535,10 @@ init_logging(void)
  * logs are initialized).
  */
 void
-add_temp_log(void)
+add_temp_log(int min_severity)
 {
   log_severity_list_t *s = tor_malloc_zero(sizeof(log_severity_list_t));
-  set_log_severity_config(LOG_NOTICE, LOG_ERR, s);
+  set_log_severity_config(min_severity, LOG_ERR, s);
   LOCK_LOGS();
   add_stream_log_impl(s, "<temp>", stdout);
   tor_free(s);

+ 1 - 1
src/common/log.h

@@ -130,7 +130,7 @@ int add_callback_log(log_severity_list_t *severity, log_callback cb);
 int get_min_log_level(void);
 void switch_logs_debug(void);
 void logs_free_all(void);
-void add_temp_log(void);
+void add_temp_log(int min_severity);
 void close_temp_logs(void);
 void rollback_log_changes(void);
 void mark_logs_temp(void);

+ 2 - 1
src/or/config.c

@@ -1343,7 +1343,8 @@ config_get_commandlines(int argc, char **argv, config_line_t **result)
     } else if (!strcmp(argv[i],"--list-fingerprint") ||
                !strcmp(argv[i],"--verify-config") ||
                !strcmp(argv[i],"--ignore-missing-torrc") ||
-               !strcmp(argv[i],"--quiet")) {
+               !strcmp(argv[i],"--quiet") ||
+               !strcmp(argv[i],"--hush")) {
       i += 1; /* command-line option. ignore it. */
       continue;
     } else if (!strcmp(argv[i],"--nt-service") ||

+ 13 - 4
src/or/main.c

@@ -1780,12 +1780,21 @@ tor_init(int argc, char *argv[])
   /* 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<argc;++i) {
-    if (!strcmp(argv[i], "--quiet"))
+    if (!strcmp(argv[i], "--hush"))
       quiet = 1;
+    if (!strcmp(argv[i], "--quiet"))
+      quiet = 2;
   }
-  if (!quiet) {
-    /* give it somewhere to log to initially */
-    add_temp_log();
+ /* give it somewhere to log to initially */
+  switch (quiet) {
+    case 2:
+      /* no initial logging */
+      break;
+    case 1:
+      add_temp_log(LOG_WARN);
+      break;
+    default:
+      add_temp_log(LOG_NOTICE);
   }
 
   log(LOG_NOTICE, LD_GENERAL, "Tor v%s. This is experimental software. "