From 32eec03832b8e3fe489433e14ec34e8747ae44e5 Mon Sep 17 00:00:00 2001 From: djm Date: Wed, 9 Aug 2000 06:34:27 +0000 Subject: [PATCH] - (djm) utmp direct write & SunOS 4 patch from Charles Levert --- CREDITS | 1 + ChangeLog | 2 ++ configure.in | 5 +++++ defines.h | 33 ++++++++++++++++++++++++--------- loginrec.c | 2 +- 5 files changed, 33 insertions(+), 10 deletions(-) diff --git a/CREDITS b/CREDITS index 2c7dab97..59ffd553 100644 --- a/CREDITS +++ b/CREDITS @@ -12,6 +12,7 @@ Arkadiusz Miskiewicz - IPv6 compat fixes Ben Lindstrom - NeXT support Ben Taylor - Solaris debugging and fixes Bratislav ILICH - Configure fix +Charles Levert - SunOS 4 & bug fixes Chip Salzenberg - Assorted patches Chris Adams - OSF SIA support Chris Saia - SuSE packaging diff --git a/ChangeLog b/ChangeLog index 76de985e..d37de96f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,8 @@ 20000809 - (djm) Define AIX hard limits if headers don't. Report from Bill Painter + - (djm) utmp direct write & SunOS 4 patch from Charles Levert + 20000808 - (djm) Cleanup Redhat RPMs. Generate keys at runtime rather than install diff --git a/configure.in b/configure.in index 92659857..c74f65b9 100644 --- a/configure.in +++ b/configure.in @@ -137,6 +137,11 @@ case "$host" in *-*-sunos4*) CFLAGS="$CFLAGS -DSUNOS4" AC_CHECK_FUNCS(getpwanam) + conf_utmp_location=/etc/utmp + conf_wtmp_location=/var/adm/wtmp + conf_lastlog_location=/var/adm/lastlog + MANTYPE='$(CATMAN)' + mansubdir=cat ;; *-sni-sysv*) CFLAGS="$CFLAGS -I/usr/local/include" diff --git a/defines.h b/defines.h index 23e00d1a..0480006d 100644 --- a/defines.h +++ b/defines.h @@ -329,18 +329,33 @@ typedef int mode_t; #endif /* FIXME: put default paths back in */ -#if !defined(UTMP_FILE) && defined(_PATH_UTMP) -# define UTMP_FILE _PATH_UTMP +#ifndef UTMP_FILE +# ifdef _PATH_UTMP +# define UTMP_FILE _PATH_UTMP +# else +# ifdef CONF_UTMP_FILE +# define UTMP_FILE CONF_UTMP_FILE +# endif +# endif #endif -#if !defined(WTMP_FILE) && defined(_PATH_WTMP) -# define WTMP_FILE _PATH_WTMP +#ifndef WTMP_FILE +# ifdef _PATH_WTMP +# define WTMP_FILE _PATH_WTMP +# else +# ifdef CONF_WTMP_FILE +# define WTMP_FILE CONF_WTMP_FILE +# endif +# endif #endif /* pick up the user's location for lastlog if given */ -#if !defined(LASTLOG_FILE) && defined(_PATH_LASTLOG) -# define LASTLOG_FILE _PATH_LASTLOG -#endif -#if !defined(LASTLOG_FILE) && defined(CONF_LASTLOG_FILE) -# define LASTLOG_FILE CONF_LASTLOG_FILE +#ifndef LASTLOG_FILE +# ifdef _PATH_LASTLOG +# define LASTLOG_FILE _PATH_LASTLOG +# else +# ifdef CONF_LASTLOG_FILE +# define LASTLOG_FILE CONF_LASTLOG_FILE +# endif +# endif #endif diff --git a/loginrec.c b/loginrec.c index 6e9c4ce4..7e7d7dd0 100644 --- a/loginrec.c +++ b/loginrec.c @@ -740,7 +740,7 @@ utmp_write_direct(struct logininfo *li, struct utmp *ut) } (void)lseek(fd, (off_t)(tty * sizeof(struct utmp)), SEEK_SET); - if (atomicio(write, fd, ut, sizeof(ut)) != sizeof(ut)) + if (atomicio(write, fd, ut, sizeof(*ut)) != sizeof(*ut)) log("utmp_write_direct: error writing %s: %s", UTMP_FILE, strerror(errno)); -- 2.45.1