From 1483b7537883c00276b91f8c35496594edd5b073 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 14 May 1999 21:30:22 +0000 Subject: Update. 1999-05-14 Mark Kettenis * sysdeps/generic/getutmp.c: Include (getutmp): Rewrite to only copy those members that are really present in `struct utmp'. * sysdeps/generic/getutmpx.c: Likewise. --- sysdeps/generic/getutmp.c | 22 ++++++++++++++-------- sysdeps/generic/getutmpx.c | 30 +++++++++++++++++++----------- 2 files changed, 33 insertions(+), 19 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/generic/getutmp.c b/sysdeps/generic/getutmp.c index 317a886752..0d3bf05bd8 100644 --- a/sysdeps/generic/getutmp.c +++ b/sysdeps/generic/getutmp.c @@ -16,25 +16,31 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #include #include +/* Copy the information in UTMPX to UTMP. */ void getutmp (const struct utmpx *utmpx, struct utmp *utmp) { +#if _HAVE_UT_TYPE - 0 utmp->ut_type = utmpx->ut_type; +#endif +#if _HAVE_UT_PID - 0 utmp->ut_pid = utmpx->ut_pid; +#endif memcpy (utmp->ut_line, utmpx->ut_line, sizeof (utmp->ut_line)); - memcpy (utmp->ut_id, utmpx->ut_id, sizeof (utmp->ut_id)); memcpy (utmp->ut_user, utmpx->ut_user, sizeof (utmp->ut_user)); +#if _HAVE_UT_ID - 0 + memcpy (utmp->ut_id, utmpx->ut_id, sizeof (utmp->ut_id)); +#endif +#if _HAVE_UT_HOST - 0 memcpy (utmp->ut_host, utmpx->ut_host, sizeof (utmp->ut_host)); -#ifdef _GNU_SOURCE - utmp->ut_exit.e_termination = utmpx->ut_exit.e_termination; - utmp->ut_exit.e_exit = utmpx->ut_exit.e_exit; -#else - utmp->ut_exit.__e_termination = utmpx->ut_exit.e_termination; - utmp->ut_exit.__e_exit = utmpx->ut_exit.e_exit; #endif - utmp->ut_session = utmpx->ut_session; +#if _HAVE_UT_TV - 0 utmp->ut_tv = utmpx->ut_tv; +#else + utmp->ut_time = utmpx->ut_time; +#endif } diff --git a/sysdeps/generic/getutmpx.c b/sysdeps/generic/getutmpx.c index 41dfeaed69..e707a6488c 100644 --- a/sysdeps/generic/getutmpx.c +++ b/sysdeps/generic/getutmpx.c @@ -16,25 +16,33 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #include #include +/* Copy the information in UTMP to UTMPX. */ void getutmpx (const struct utmp *utmp, struct utmpx *utmpx) { + memset (utmpx, 0, sizeof (struct utmpx)); + +#if _HAVE_UT_TYPE - 0 utmpx->ut_type = utmp->ut_type; +#endif +#if _HAVE_UT_PID - 0 utmpx->ut_pid = utmp->ut_pid; - memcpy (utmpx->ut_line, utmp->ut_line, sizeof (utmpx->ut_line)); - memcpy (utmpx->ut_id, utmp->ut_id, sizeof (utmpx->ut_id)); - memcpy (utmpx->ut_user, utmp->ut_user, sizeof (utmpx->ut_user)); - memcpy (utmpx->ut_host, utmp->ut_host, sizeof (utmpx->ut_host)); -#ifdef _GNU_SOURCE - utmpx->ut_exit.e_termination = utmp->ut_exit.e_termination; - utmpx->ut_exit.e_exit = utmp->ut_exit.e_exit; -#else - utmpx->ut_exit.__e_termination = utmp->ut_exit.e_termination; - utmpx->ut_exit.__e_exit = utmp->ut_exit.e_exit; #endif - utmpx->ut_session = utmp->ut_session; + memcpy (utmpx->ut_line, utmp->ut_line, sizeof (utmp->ut_line)); + memcpy (utmpx->ut_user, utmp->ut_user, sizeof (utmp->ut_user)); +#if _HAVE_UT_ID - 0 + memcpy (utmpx->ut_id, utmp->ut_id, sizeof (utmp->ut_id)); +#endif +#if _HAVE_UT_HOST - 0 + memcpy (utmpx->ut_host, utmp->ut_host, sizeof (utmp->ut_host)); +#endif +#if _HAVE_UT_TV - 0 utmpx->ut_tv = utmp->ut_tv; +#else + utmpx->ut_time = utmp->ut_time; +#endif } -- cgit 1.4.1