Add support for systems without syslog.h
authorMatt Fischer <matt.fischer@garmin.com>
Wed, 20 Feb 2013 21:27:20 +0000 (15:27 -0600)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Thu, 21 Feb 2013 13:12:39 +0000 (13:12 +0000)
This patch disables the use of syslog for systems which
do not have it, such as QNX.  Log messages are still
printed to stderr.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=61176
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
dbus/dbus-sysdeps-util-unix.c

index 6cff3fe..7beab20 100644 (file)
 #include <sys/socket.h>
 #include <dirent.h>
 #include <sys/un.h>
+
+#ifdef HAVE_SYSLOG_H
 #include <syslog.h>
+#endif
 
 #ifdef HAVE_SYS_SYSLIMITS_H
 #include <sys/syslimits.h>
@@ -425,11 +428,15 @@ _dbus_request_file_descriptor_limit (unsigned int limit)
 void
 _dbus_init_system_log (void)
 {
+#ifdef HAVE_SYSLOG_H
+
 #if HAVE_DECL_LOG_PERROR
   openlog ("dbus", LOG_PID | LOG_PERROR, LOG_DAEMON);
 #else
   openlog ("dbus", LOG_PID, LOG_DAEMON);
 #endif
+
+#endif
 }
 
 /**
@@ -465,6 +472,7 @@ _dbus_system_log (DBusSystemLogSeverity severity, const char *msg, ...)
 void
 _dbus_system_logv (DBusSystemLogSeverity severity, const char *msg, va_list args)
 {
+#ifdef HAVE_SYSLOG_H
   int flags;
   switch (severity)
     {
@@ -481,7 +489,10 @@ _dbus_system_logv (DBusSystemLogSeverity severity, const char *msg, va_list args
         return;
     }
 
-#ifndef HAVE_DECL_LOG_PERROR
+  vsyslog (flags, msg, args);
+#endif
+
+#if !defined(HAVE_SYSLOG_H) || !HAVE_DECL_LOG_PERROR
     {
       /* vsyslog() won't write to stderr, so we'd better do it */
       va_list tmp;
@@ -494,8 +505,6 @@ _dbus_system_logv (DBusSystemLogSeverity severity, const char *msg, va_list args
     }
 #endif
 
-  vsyslog (flags, msg, args);
-
   if (severity == DBUS_SYSTEM_LOG_FATAL)
     exit (1);
 }