Explorar el Código

r18861@catbus: nickm | 2008-03-16 23:22:56 -0400
Fix a couple of bugs in setting control log callback severity.


svn:r14065

Nick Mathewson hace 16 años
padre
commit
bd547e3cfc
Se han modificado 2 ficheros con 10 adiciones y 4 borrados
  1. 3 1
      src/common/log.c
  2. 7 3
      src/or/control.c

+ 3 - 1
src/common/log.c

@@ -571,10 +571,12 @@ change_callback_log_severity(int loglevelMin, int loglevelMax,
                              log_callback cb)
 {
   logfile_t *lf;
+  log_severity_list_t severities;
+  set_log_severity_config(loglevelMin, loglevelMax, &severities);
   LOCK_LOGS();
   for (lf = logfiles; lf; lf = lf->next) {
     if (lf->callback == cb) {
-      set_log_severity_config(loglevelMin, loglevelMax, lf->severities);
+      memcpy(lf->severities, &severities, sizeof(severities));
     }
   }
   _log_global_min_severity = get_min_log_level();

+ 7 - 3
src/or/control.c

@@ -248,9 +248,13 @@ control_adjust_event_log_severity(void)
     if (max_log_event < EVENT_ERR_MSG)
       max_log_event = EVENT_ERR_MSG;
   }
-  change_callback_log_severity(event_to_log_severity(min_log_event),
-                               event_to_log_severity(max_log_event),
-                               control_event_logmsg);
+  if (min_log_event <= max_log_event)
+    change_callback_log_severity(event_to_log_severity(min_log_event),
+                                 event_to_log_severity(max_log_event),
+                                 control_event_logmsg);
+  else
+    change_callback_log_severity(LOG_ERR, LOG_ERR,
+                                 control_event_logmsg);
 }
 
 /** Return true iff the event with code <b>c</b> is being sent to any current