Fri Jun 21 00:27:51 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
authorroland <roland>
Fri, 21 Jun 1996 21:01:00 +0000 (21:01 +0000)
committerroland <roland>
Fri, 21 Jun 1996 21:01:00 +0000 (21:01 +0000)
Fixes thanks to Raja R Harinath <harinath@cs.umn.edu>:
* sysdeps/unix/sysv/utmpbits.h: Define _HAVE_UT_{TYPE,ID,TV,HOST}.
Use __{BEGIN,END}_DECLS.
(_PATH_WTMP, _PATH_UTMP, _PATH_LASTLOG): New macros.
* login/utmp.h (UTMP_FILE, UTMP_FILENAME, WTMP_FILE, WTMP_FILENAME):
New macros, moved here from sysdeps/gnu/utmpbits.h.
* sysdeps/generic/utmpbits.h (_HAVE_UT_HOST): Define it.
* sysdeps/gnu/utmpbits.h (_HAVE_UT_HOST): Likewise.
* login/logout.c: Use ut_host only #if _HAVE_UT_HOST.
Use sizeof instead of UT_*SIZE.
* login/logwtmp.c: Likewise.

login/logout.c
login/logwtmp.c
login/utmp.h
sysdeps/generic/utmpbits.h
sysdeps/gnu/utmpbits.h
sysdeps/unix/sysv/utmpbits.h

index d47a392..1b8dc31 100644 (file)
@@ -41,15 +41,16 @@ logout (const char *line)
 #if _HAVE_UT_TYPE - 0
   tmp.ut_type = USER_PROCESS;
 #endif
 #if _HAVE_UT_TYPE - 0
   tmp.ut_type = USER_PROCESS;
 #endif
-  strncpy (tmp.ut_line, line, UT_LINESIZE);
+  strncpy (tmp.ut_line, line, sizeof tmp.ut_line);
 
   /* Read the record.  */
   if (getutline_r (&tmp, &ut, &data) >= 0 || errno == ESRCH)
     {
       /* Clear information about who & from where.  */
 
   /* Read the record.  */
   if (getutline_r (&tmp, &ut, &data) >= 0 || errno == ESRCH)
     {
       /* Clear information about who & from where.  */
-      bzero (ut->ut_name, UT_NAMESIZE);
-      bzero (ut->ut_host, UT_HOSTSIZE);
-
+      bzero (ut->ut_name, sizeof ut->ut_name);
+#if _HAVE_UT_HOST - 0
+      bzero (ut->ut_host, sizeof ut->ut_host);
+#endif
 #if _HAVE_UT_TV - 0
       gettimeofday (&ut->ut_tv, NULL);
 #else
 #if _HAVE_UT_TV - 0
       gettimeofday (&ut->ut_tv, NULL);
 #else
index 10f7384..371f34e 100644 (file)
@@ -45,9 +45,11 @@ logwtmp (const char *line, const char *name, const char *host)
 #if _HAVE_UT_TYPE - 0
   ut.ut_type = USER_PROCESS;
 #endif
 #if _HAVE_UT_TYPE - 0
   ut.ut_type = USER_PROCESS;
 #endif
-  strncpy (ut.ut_line, line, UT_LINESIZE);
-  strncpy (ut.ut_name, name, UT_NAMESIZE);
-  strncpy (ut.ut_host, host, UT_HOSTSIZE);
+  strncpy (ut.ut_line, line, sizeof ut.ut_line);
+  strncpy (ut.ut_name, name, sizeof ut.ut_name);
+#if _HAVE_UT_HOST - 0
+  strncpy (ut.ut_host, host, sizeof ut.ut_host);
+#endif
 
 #if _HAVE_UT_TV - 0
   gettimeofday (&ut.ut_tv, NULL);
 
 #if _HAVE_UT_TV - 0
   gettimeofday (&ut.ut_tv, NULL);
@@ -60,5 +62,4 @@ logwtmp (const char *line, const char *name, const char *host)
 
   /* Close UTMP file.  */
   endutent_r (&data);
 
   /* Close UTMP file.  */
   endutent_r (&data);
-
 }
 }
index 71f1a09..e9c1734 100644 (file)
@@ -28,6 +28,13 @@ Boston, MA 02111-1307, USA.  */
 /* Get system dependent values and data structures.  */
 #include <utmpbits.h>
 
 /* Get system dependent values and data structures.  */
 #include <utmpbits.h>
 
+/* Compatibility names for the strings of the canonical file names.  */
+#define UTMP_FILE      _PATH_UTMP
+#define UTMP_FILENAME  _PATH_UTMP
+#define WTMP_FILE      _PATH_WTMP
+#define WTMP_FILENAME  _PATH_WTMP
+
+
 
 /* Make FD be the controlling terminal, stdin, stdout, and stderr;
    then close FD.  Returns 0 on success, nonzero on error.  */
 
 /* Make FD be the controlling terminal, stdin, stdout, and stderr;
    then close FD.  Returns 0 on success, nonzero on error.  */
index 0cd8f1d..b3fb36a 100644 (file)
@@ -46,6 +46,10 @@ struct utmp {
        long    ut_time;
 };
 
        long    ut_time;
 };
 
+
+#define _HAVE_UT_HOST 1                /* We have the ut_host field.  */
+
+
 __END_DECLS
 
 #endif /* utmpbits.h */
 __END_DECLS
 
 #endif /* utmpbits.h */
index 2244ecb..4749fdd 100644 (file)
@@ -28,11 +28,6 @@ Boston, MA 02111-1307, USA.  */
 #define _PATH_WTMP     "/var/log/wtmp"
 #define _PATH_LASTLOG  "/var/log/lastlog"
 
 #define _PATH_WTMP     "/var/log/wtmp"
 #define _PATH_LASTLOG  "/var/log/lastlog"
 
-#define UTMP_FILE      _PATH_UTMP
-#define WTMP_FILE      _PATH_WTMP
-#define UTMP_FILENAME  UTMP_FILE
-#define WTMP_FILENAME  WTMP_FILE
-
 #define UT_UNKNOWN     0       /* for ut_type field */
 
 #define RUN_LVL                1
 #define UT_UNKNOWN     0       /* for ut_type field */
 
 #define RUN_LVL                1
@@ -45,8 +40,6 @@ Boston, MA 02111-1307, USA.  */
 #define USER_PROCESS   7
 #define DEAD_PROCESS   8
 
 #define USER_PROCESS   7
 #define DEAD_PROCESS   8
 
-#define ut_name        ut_user
-
 #define UT_LINESIZE    32
 #define UT_NAMESIZE    32
 #define UT_HOSTSIZE    256
 #define UT_LINESIZE    32
 #define UT_NAMESIZE    32
 #define UT_HOSTSIZE    256
@@ -67,6 +60,7 @@ struct utmp
   char ut_line[UT_LINESIZE];   /* NUL-terminated devicename of tty.  */
   char ut_id[4];               /* Inittab id. */
   char ut_user[UT_NAMESIZE];   /* Username (not NUL terminated).  */
   char ut_line[UT_LINESIZE];   /* NUL-terminated devicename of tty.  */
   char ut_id[4];               /* Inittab id. */
   char ut_user[UT_NAMESIZE];   /* Username (not NUL terminated).  */
+#define ut_name        ut_user         /* Compatible field name for same.  */
   char ut_host[UT_HOSTSIZE];   /* Hostname for remote login.  */
   int ut_exit;                 /* Process termination/exit status.  */
   long ut_session;             /* Session ID, used for windowing.  */
   char ut_host[UT_HOSTSIZE];   /* Hostname for remote login.  */
   int ut_exit;                 /* Process termination/exit status.  */
   long ut_session;             /* Session ID, used for windowing.  */
@@ -77,11 +71,12 @@ struct utmp
 
 #define ut_time        ut_tv.tv_sec    /* Backwards compatibility.  */
 
 
 #define ut_time        ut_tv.tv_sec    /* Backwards compatibility.  */
 
-/* Tell the user that we have a modern system with UT_TYPE, UT_ID
+/* Tell the user that we have a modern system with UT_HOST, UT_TYPE, UT_ID
    and UT_TV fields.  */
 #define _HAVE_UT_TYPE  1
 #define _HAVE_UT_ID    1
 #define _HAVE_UT_TV    1
    and UT_TV fields.  */
 #define _HAVE_UT_TYPE  1
 #define _HAVE_UT_ID    1
 #define _HAVE_UT_TV    1
+#define _HAVE_UT_HOST  1
 
 __END_DECLS
 
 
 __END_DECLS
 
index e8d9334..3d2ccf3 100644 (file)
@@ -23,6 +23,12 @@ Cambridge, MA 02139, USA.  */
 
 #include <time.h>
 
 
 #include <time.h>
 
+#define _PATH_UTMP      "/var/adm/utmp"
+#define _PATH_WTMP      "/var/adm/wtmp"
+#define _PATH_LASTLOG   "/var/adm/lastlog"
+
+__BEGIN_DECLS
+
 struct utmp
   {
 #define        ut_name ut_user
 struct utmp
   {
 #define        ut_name ut_user
@@ -39,4 +45,14 @@ struct utmp
     time_t ut_time;
   };
 
     time_t ut_time;
   };
 
+
+/* Tell the user that we have a modern system with UT_HOST, UT_TYPE, UT_ID
+   and UT_TV fields.  */
+#define _HAVE_UT_TYPE  1
+#define _HAVE_UT_ID    1
+#define _HAVE_UT_TV    1
+#define _HAVE_UT_HOST  1
+
+__END_DECLS
+
 #endif /* utmpbits.h  */
 #endif /* utmpbits.h  */