diff options
Diffstat (limited to 'login')
-rw-r--r-- | login/getutid.c | 6 | ||||
-rw-r--r-- | login/login.c | 2 | ||||
-rw-r--r-- | login/programs/xtmp.c | 29 | ||||
-rw-r--r-- | login/programs/xtmp.h | 3 |
4 files changed, 24 insertions, 16 deletions
diff --git a/login/getutid.c b/login/getutid.c index d3d3b5d068..98e8e4adc3 100644 --- a/login/getutid.c +++ b/login/getutid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -25,7 +25,7 @@ static struct utmp buffer; struct utmp * -getutid (const struct utmp *id) +__getutid (const struct utmp *id) { struct utmp *result; @@ -34,3 +34,5 @@ getutid (const struct utmp *id) return result; } +weak_alias (__getutid, getutid) +weak_alias (__getutid, getutxid) diff --git a/login/login.c b/login/login.c index 075ef15056..4d08dbb472 100644 --- a/login/login.c +++ b/login/login.c @@ -115,7 +115,7 @@ login (const struct utmp *ut) strncpy (copy.ut_line, ttyp, UT_LINESIZE); /* Tell that we want to use the UTMP file. */ - if (utmpname (_PATH_UTMP) != 0) + if (utmpname (_PATH_UTMP) == 0) { struct utmp *old; diff --git a/login/programs/xtmp.c b/login/programs/xtmp.c index 105145b01d..e27e1a8a86 100644 --- a/login/programs/xtmp.c +++ b/login/programs/xtmp.c @@ -85,30 +85,37 @@ utmp_to_xtmp (const struct utmp *utmp, struct xtmp *xtmp) /* Compare an old style entry XTMP with a new style entry UTMP. The function returns 1 if the information that is in both old and new - style entries is identical. Otherwise this function returns 0. */ + style entries is identical. Otherwise this function returns 0. + + The type of the argument `xtmp' is `struct utmp *', not `struct + utmp *'. This is intentional! We convert from and to `struct + xtmp' directly when we read and write an old style entry. But + since XTMP is converted from an old style entry, we compare only + those elements of the structure that are common to both the new and + the old style entry. */ int -compare_entry (const struct xtmp *xtmp, const struct utmp *utmp) +compare_entry (const struct utmp *xtmp, const struct utmp *utmp) { return ( #if _HAVE_XT_TYPE - 0 - xtmp->xt_type == utmp->ut_type + xtmp->ut_type == utmp->ut_type #endif #if _HAVE_XT_PID - 0 - && xtmp->xt_pid == utmp->ut_pid + && xtmp->ut_pid == utmp->ut_pid #endif - && !strncmp (xtmp->xt_line, utmp->ut_line, XT_LINESIZE - 1) + && !strncmp (xtmp->ut_line, utmp->ut_line, XT_LINESIZE - 1) #if _HAVE_XT_ID - 0 - && !strncmp (xtmp->xt_id, utmp->ut_id, sizeof utmp->ut_id) + && !strncmp (xtmp->ut_id, utmp->ut_id, sizeof utmp->ut_id) #endif #if _HAVE_UT_TV - 0 - && xtmp->xt_time == utmp->ut_tv.tv_sec + && xtmp->ut_tv.tv_sec == utmp->ut_tv.tv_sec #else - && xtmp->xt_time == utmp->ut_time + && xtmp->ut_time == utmp->ut_time #endif - && !strncmp (xtmp->xt_user, utmp->ut_user, XT_NAMESIZE) + && !strncmp (xtmp->ut_user, utmp->ut_user, XT_NAMESIZE) #if _HAVE_XT_HOST - 0 - && !strncmp (xtmp->xt_host, utmp->ut_host, XT_HOSTSIZE - 1) + && !strncmp (xtmp->ut_host, utmp->ut_host, XT_HOSTSIZE - 1) #endif - && xtmp->xt_addr == utmp->ut_addr); + && xtmp->ut_addr == utmp->ut_addr); } diff --git a/login/programs/xtmp.h b/login/programs/xtmp.h index 508993248a..25949ef6dd 100644 --- a/login/programs/xtmp.h +++ b/login/programs/xtmp.h @@ -20,7 +20,6 @@ #ifndef _XTMP_H #define _XTMP_H 1 -#include <features.h> #include <sys/time.h> #include <sys/types.h> @@ -50,7 +49,7 @@ struct xtmp extern void xtmp_to_utmp (const struct xtmp *xtmp, struct utmp *utmp); extern void utmp_to_xtmp (const struct utmp *utmp, struct xtmp *xtmp); -extern int compare_entry (const struct xtmp *xtmp, +extern int compare_entry (const struct utmp *xtmp, const struct utmp *utmp); #endif /* xtmp.h */ |