#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. */
- 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_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);
/* Close UTMP file. */
endutent_r (&data);
-
}
/* 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. */
long ut_time;
};
+
+#define _HAVE_UT_HOST 1 /* We have the ut_host field. */
+
+
__END_DECLS
#endif /* utmpbits.h */
#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 USER_PROCESS 7
#define DEAD_PROCESS 8
-#define ut_name ut_user
-
#define UT_LINESIZE 32
#define UT_NAMESIZE 32
#define UT_HOSTSIZE 256
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. */
#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
+#define _HAVE_UT_HOST 1
__END_DECLS
#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
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 */