Explorar el Código

Add code to suppress spurious libevent log msgs; use it to resolve bug 68.

svn:r3948
Nick Mathewson hace 20 años
padre
commit
410ecfcc71
Se han modificado 3 ficheros con 10 adiciones y 0 borrados
  1. 7 0
      src/common/log.c
  2. 1 0
      src/common/log.h
  3. 2 0
      src/or/config.c

+ 7 - 0
src/common/log.c

@@ -482,8 +482,11 @@ void switch_logs_debug(void)
 }
 
 #ifdef HAVE_EVENT_SET_LOG_CALLBACK
+static const char *suppress_msg = NULL;
 void libevent_logging_callback(int severity, const char *msg)
 {
+  if (suppress_msg && strstr(msg, suppress_msg))
+    return;
   switch (severity) {
     case _EVENT_LOG_DEBUG:
       log(LOG_DEBUG, "Message from libevent: %s", msg);
@@ -506,6 +509,10 @@ void configure_libevent_logging(void)
 {
   event_set_log_callback(libevent_logging_callback);
 }
+void suppress_libevent_log_msg(const char *msg)
+{
+  suppress_msg = msg;
+}
 #else
 void configure_libevent_logging(void) {}
 #endif

+ 1 - 0
src/common/log.h

@@ -67,6 +67,7 @@ void add_temp_log(void);
 void close_temp_logs(void);
 void mark_logs_temp(void);
 void configure_libevent_logging(void);
+void suppress_libevent_log_msg(const char *msg);
 
 /* Outputs a message to stdout */
 void _log(int severity, const char *format, ...) CHECK_PRINTF(2,3);

+ 2 - 0
src/or/config.c

@@ -270,7 +270,9 @@ options_act(void) {
   }
   if (!libevent_initialized) {
     configure_libevent_logging();
+    suppress_libevent_logmsg("function not implemented");
     event_init();
+    suppress_libevent_msg(NULL);
 #if defined(HAVE_EVENT_GET_VERSION) && defined(HAVE_EVENT_GET_METHOD)
     /* Making this a NOTICE for now so we can link bugs to a libevent versions
      * or methods better. */