audit: use DBUS_SYSTEM_LOG_WARNING if we cannot open the audit fd
authorSimon McVittie <simon.mcvittie@collabora.co.uk>
Thu, 19 Feb 2015 12:08:59 +0000 (12:08 +0000)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Thu, 6 Aug 2015 16:12:37 +0000 (17:12 +0100)
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=89225
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
bus/audit.c
bus/audit.h
bus/bus.c

index 97f7d1c..1aa1e18 100644 (file)
@@ -49,20 +49,26 @@ static int audit_fd = -1;
  * Open the libaudit fd if appropriate.
  */
 void
-bus_audit_init(void)
+bus_audit_init (BusContext *context)
 {
 #ifdef HAVE_LIBAUDIT
   audit_fd = audit_open ();
 
   if (audit_fd < 0)
     {
+      int e = errno;
+
       /* If kernel doesn't support audit, bail out */
-      if (errno == EINVAL || errno == EPROTONOSUPPORT || errno == EAFNOSUPPORT)
+      if (e == EINVAL || e == EPROTONOSUPPORT || e == EAFNOSUPPORT)
         return;
+
       /* If user bus, bail out */
-      if (errno == EPERM && getuid() != 0)
+      if (e == EPERM && getuid () != 0)
         return;
-      _dbus_warn ("Failed opening connection to the audit subsystem");
+
+      bus_context_log (context, DBUS_SYSTEM_LOG_WARNING,
+                       "Failed to open connection to the audit subsystem: %s",
+                       _dbus_strerror (e));
     }
 #endif /* HAVE_LIBAUDIT */
 }
index 367d7e7..e17016f 100644 (file)
@@ -24,7 +24,9 @@
 
 #include <dbus/dbus.h>
 
-void bus_audit_init (void);
+#include "bus.h"
+
+void bus_audit_init (BusContext *context);
 int bus_audit_get_fd (void);
 void bus_audit_shutdown (void);
 
index 098985a..056f677 100644 (file)
--- a/bus/bus.c
+++ b/bus/bus.c
@@ -973,7 +973,7 @@ bus_context_new (const DBusString *config_file,
          goto failed;
        }
 
-      bus_audit_init ();
+      bus_audit_init (context);
     }
 
   dbus_server_free_data_slot (&server_data_slot);