Commit a4e9dc67 authored by Simon McVittie's avatar Simon McVittie

Cope with Unixes that don't have LOG_PERROR, like Solaris 10

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=39987Reviewed-by: Will Thompson's avatarWill Thompson <will.thompson@collabora.co.uk>
parent 14ed3718
...@@ -520,6 +520,11 @@ AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)]) ...@@ -520,6 +520,11 @@ AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep setenv clearenv unsetenv socketpair getgrouplist fpathconf setrlimit poll setlocale localeconv strtoll strtoull) AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep setenv clearenv unsetenv socketpair getgrouplist fpathconf setrlimit poll setlocale localeconv strtoll strtoull)
AC_CHECK_HEADERS([syslog.h])
if test "x$ac_cv_header_syslog_h" = "xyes"; then
AC_CHECK_DECLS([LOG_PERROR], [], [], [[#include <syslog.h>]])
fi
#### Check for broken poll; taken from Glib's configure #### Check for broken poll; taken from Glib's configure
AC_MSG_CHECKING([for broken poll]) AC_MSG_CHECKING([for broken poll])
......
...@@ -422,11 +422,16 @@ _dbus_request_file_descriptor_limit (unsigned int limit) ...@@ -422,11 +422,16 @@ _dbus_request_file_descriptor_limit (unsigned int limit)
#endif #endif
} }
void void
_dbus_init_system_log (void) _dbus_init_system_log (void)
{ {
#ifdef HAVE_DECL_LOG_PERROR
openlog ("dbus", LOG_PID | LOG_PERROR, LOG_DAEMON); openlog ("dbus", LOG_PID | LOG_PERROR, LOG_DAEMON);
#else
openlog ("dbus", LOG_PID, LOG_DAEMON);
#endif
} }
/** /**
* Log a message to the system log file (e.g. syslog on Unix). * Log a message to the system log file (e.g. syslog on Unix).
* *
...@@ -476,6 +481,19 @@ _dbus_system_logv (DBusSystemLogSeverity severity, const char *msg, va_list args ...@@ -476,6 +481,19 @@ _dbus_system_logv (DBusSystemLogSeverity severity, const char *msg, va_list args
return; return;
} }
#ifndef HAVE_DECL_LOG_PERROR
{
/* vsyslog() won't write to stderr, so we'd better do it */
va_list tmp;
DBUS_VA_COPY (tmp, args);
fprintf (stderr, "dbus[" DBUS_PID_FORMAT "]: ", _dbus_getpid ());
vfprintf (stderr, msg, tmp);
fputc ('\n', stderr);
va_end (tmp);
}
#endif
vsyslog (flags, msg, args); vsyslog (flags, msg, args);
if (severity == DBUS_SYSTEM_LOG_FATAL) if (severity == DBUS_SYSTEM_LOG_FATAL)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment