Browse Source

kill -USR2 now moves all logs to loglevel debug
plus fix some typos


svn:r2914

Roger Dingledine 21 years ago
parent
commit
dd19cf6ba3
6 changed files with 30 additions and 12 deletions
  1. 9 0
      src/common/log.c
  2. 1 0
      src/common/log.h
  3. 1 1
      src/or/config.c
  4. 1 1
      src/or/connection.c
  5. 1 1
      src/or/hibernate.c
  6. 17 9
      src/or/main.c

+ 9 - 0
src/common/log.c

@@ -441,6 +441,15 @@ int get_min_log_level(void)
   return min;
 }
 
+/** Switch all logs to output at most verbose level. */
+void switch_logs_debug(void)
+{
+  logfile_t *lf;
+  for (lf = logfiles; lf; lf=lf->next) {
+    lf->loglevel = LOG_DEBUG;
+  }
+}
+
 /*
   Local Variables:
   mode:c

+ 1 - 0
src/common/log.h

@@ -64,6 +64,7 @@ int add_syslog_log(int loglevelMin, int loglevelMax);
 #endif
 int add_callback_log(int loglevelMin, int loglevelMax, log_callback cb);
 int get_min_log_level(void);
+void switch_logs_debug(void);
 void close_logs(void);
 void reset_logs(void);
 void add_temp_log(void);

+ 1 - 1
src/or/config.c

@@ -104,7 +104,7 @@ static config_var_t config_vars[] = {
   VAR("DirPort",             UINT,     DirPort,              "0"),
   VAR("DirBindAddress",      LINELIST, DirBindAddress,       NULL),
   VAR("DirFetchPeriod",      INTERVAL, DirFetchPeriod,       "1 hour"),
-  VAR("DirPostPeriod",       INTERVAL, DirPostPeriod,        "10 mintues"),
+  VAR("DirPostPeriod",       INTERVAL, DirPostPeriod,        "10 minutes"),
   VAR("RendPostPeriod",      INTERVAL, RendPostPeriod,       "10 minutes"),
   VAR("DirPolicy",           LINELIST, DirPolicy,            NULL),
   VAR("DirServer",           LINELIST, DirServers,           NULL),

+ 1 - 1
src/or/connection.c

@@ -718,7 +718,7 @@ static void connection_consider_empty_buckets(connection_t *conn) {
   }
 }
 
-/** Initiatialize the global read bucket to options->BandwidthBurst,
+/** Initialize the global read bucket to options->BandwidthBurst,
  * and current_time to the current time. */
 void connection_bucket_init(void) {
   or_options_t *options = get_options();

+ 1 - 1
src/or/hibernate.c

@@ -211,7 +211,7 @@ update_expected_bandwidth(void)
     /* If we haven't gotten enough data last interval, guess that
      * we'll be used at our maximum capacity.  This is unlikely to be
      * so, but it will give us an okay first estimate, and we'll stay
-     * up until we send Max ytes.  Next interval, we'll choose
+     * up until we send Max bytes.  Next interval, we'll choose
      * our starting time based on how much we sent this interval.
      */
     expected_bandwidth_usage = max_configured;

+ 17 - 9
src/or/main.c

@@ -50,6 +50,7 @@ static int nfds=0; /**< Number of connections currently active. */
 
 #ifndef MS_WINDOWS /* do signal stuff only on unix */
 static int please_dumpstats=0; /**< Whether we should dump stats during the loop. */
+static int please_debug=0; /**< Whether we should switch all logs to -l debug. */
 static int please_reset=0; /**< Whether we just got a sighup. */
 static int please_reap_children=0; /**< Whether we should waitpid for exited children. */
 static int please_sigpipe=0; /**< Whether we've caught a sigpipe lately. */
@@ -815,7 +816,7 @@ static int do_main_loop(void) {
     }
 #endif
 #ifndef MS_WINDOWS /* do signal stuff only on unix */
-    if(please_shutdown) {
+    if (please_shutdown) {
       if(!server_mode(get_options())) { /* do it now */
         log(LOG_NOTICE,"Interrupt: exiting cleanly.");
         tor_cleanup();
@@ -824,16 +825,20 @@ static int do_main_loop(void) {
       hibernate_begin_shutdown();
       please_shutdown = 0;
     }
-    if(please_sigpipe) {
+    if (please_sigpipe) {
       log(LOG_NOTICE,"Caught sigpipe. Ignoring.");
       please_sigpipe = 0;
     }
-    if(please_dumpstats) {
+    if (please_dumpstats) {
       /* prefer to log it at INFO, but make sure we always see it */
       dumpstats(get_min_log_level()<LOG_INFO ? get_min_log_level() : LOG_INFO);
       please_dumpstats = 0;
     }
-    if(please_reset) {
+    if (please_debug) {
+      switch_logs_debug();
+      please_debug = 0;
+    }
+    if (please_reset) {
       if (do_hup() < 0) {
         log_fn(LOG_WARN,"Restart failed (config error?). Exiting.");
         tor_cleanup();
@@ -841,7 +846,7 @@ static int do_main_loop(void) {
       }
       please_reset = 0;
     }
-    if(please_reap_children) {
+    if (please_reap_children) {
       while(waitpid(-1,NULL,WNOHANG) > 0) ; /* keep reaping until no more zombies */
       please_reap_children = 0;
     }
@@ -853,7 +858,7 @@ static int do_main_loop(void) {
     poll_result = tor_poll(poll_array, nfds, timeout);
 
     /* let catch() handle things like ^c, and otherwise don't worry about it */
-    if(poll_result < 0) {
+    if (poll_result < 0) {
       /* let the program survive things like ^z */
       if(tor_socket_errno(-1) != EINTR) {
         log_fn(LOG_ERR,"poll failed: %s [%d]",
@@ -869,15 +874,15 @@ static int do_main_loop(void) {
     }
 
     /* do all the reads and errors first, so we can detect closed sockets */
-    for(i=0;i<nfds;i++)
+    for (i=0;i<nfds;i++)
       conn_read(i); /* this also marks broken connections */
 
     /* then do the writes */
-    for(i=0;i<nfds;i++)
+    for (i=0;i<nfds;i++)
       conn_write(i);
 
     /* any of the conns need to be closed now? */
-    for(i=0;i<nfds;i++)
+    for (i=0;i<nfds;i++)
       conn_close_if_marked(i);
 
     /* refilling buckets and sending cells happens at the beginning of the
@@ -910,6 +915,9 @@ static void catch(int the_signal) {
     case SIGUSR1:
       please_dumpstats = 1;
       break;
+    case SIGUSR2:
+      please_debug = 1;
+      break;
     case SIGCHLD:
       please_reap_children = 1;
       break;