diff options
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/getutmp.c | 22 | ||||
-rw-r--r-- | sysdeps/generic/getutmpx.c | 30 |
2 files changed, 33 insertions, 19 deletions
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 <string.h> #include <utmp.h> #include <utmpx.h> +/* 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 <string.h> #include <utmp.h> #include <utmpx.h> +/* 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 } |