On Mon, Mar 10, 2008 at 18:19:43 +0100, Julien Cristau wrote: > On Tue, Mar 4, 2008 at 18:51:33 -0800, Alan Coopersmith wrote: > > > I'd have no objections to using openlog() on other OS'es too, though I'd > > prefer an autoconf test for the openlog() function over just adding > > __linux__ > > (or just making it non-conditional for all OS'es if everyone has openlog()). > > > Hi, > > the attached patch adds a configure check for openlog, and changes the > greeter code to use #ifdef HAVE_OPENLOG instead of __OpenBSD__. I don't > know if additional checks for <syslog.h> or LOG_AUTH are needed, though, > but that should be easy to fix if necessary. > Updated version, with a check for <syslog.h> in addition to openlog().
Cheers, Julien
>From 83a6107916e1285c0750e50eb286ae0793e08031 Mon Sep 17 00:00:00 2001 From: Julien Cristau <[EMAIL PROTECTED]> Date: Mon, 10 Mar 2008 17:51:15 +0100 Subject: [PATCH] Add support for syslog on more than openbsd. Also use LOG_AUTHPRIV by default, if that exists. --- configure.ac | 4 ++-- greeter/greet.c | 17 +++++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index 329c8e8..4f2845b 100644 --- a/configure.ac +++ b/configure.ac @@ -76,8 +76,8 @@ if test "x$HAS_SETUSERCONTEXT" = "xyes" ; then [Define to 1 if you have the 'setusercontext' function.]) fi -AC_CHECK_FUNCS([daemon sigaction]) -AC_CHECK_HEADERS([grp.h]) +AC_CHECK_FUNCS([daemon sigaction openlog]) +AC_CHECK_HEADERS([grp.h syslog.h]) AC_TYPE_SIGNAL XTRANS_CONNECTION_FLAGS diff --git a/greeter/greet.c b/greeter/greet.c index 0aabec7..852e1eb 100644 --- a/greeter/greet.c +++ b/greeter/greet.c @@ -83,8 +83,15 @@ from The Open Group. #include "greet.h" #include "Login.h" -#ifdef __OpenBSD__ +#ifdef HAVE_OPENLOG && HAVE_SYSLOG_H +#define USE_SYSLOG #include <syslog.h> +#ifndef LOG_AUTHPRIV +#define LOG_AUTHPRIV LOG_AUTH +#endif +#ifndef LOG_PID +#define LOG_PID 0 +#endif #endif #if defined(SECURE_RPC) && defined(sun) @@ -408,9 +415,7 @@ Greet (struct display *d, struct greet_info *greet) static void FailedLogin (struct display *d, struct greet_info *greet) { -#ifdef __OpenBSD__ - syslog(LOG_NOTICE, "LOGIN FAILURE ON %s", - d->name); +#ifdef USE_SYSLOG syslog(LOG_AUTHPRIV|LOG_NOTICE, "LOGIN FAILURE ON %s, %s", d->name, greet->name); @@ -485,8 +490,8 @@ greet_user_rtn GreetUser( LogError ("Cannot reopen display %s for greet window\n", d->name); exit (RESERVER_DISPLAY); } -#ifdef __OpenBSD__ - openlog("xdm", LOG_ODELAY, LOG_AUTH); +#ifdef USE_SYSLOG + openlog("xdm", LOG_ODELAY|LOG_PID, LOG_AUTHPRIV); #endif for (;;) { -- 1.5.5.4