* logutil.c (update_wtmp): initialize ut from ent the way the V4
authorMark Eichin <eichin@mit.edu>
Fri, 24 Mar 1995 01:28:24 +0000 (01:28 +0000)
committerMark Eichin <eichin@mit.edu>
Fri, 24 Mar 1995 01:28:24 +0000 (01:28 +0000)
code did. Appears to handle SunOS case (when nearly all of the
ifdef's are off) correctly now.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5207 dc483132-0cff-0310-8789-dd5450dbe970

src/appl/bsd/ChangeLog
src/appl/bsd/logutil.c

index a4d3899cbeb1db34d3222303d3124e4e4f8fc380..9f38f19bff0b5452a2105c24d0cf57d5735bb9e7 100644 (file)
@@ -1,3 +1,9 @@
+Thu Mar 23 20:22:57 1995  Mark Eichin  <eichin@cygnus.com>
+
+       * logutil.c (update_wtmp): initialize ut from ent the way the V4
+       code did. Appears to handle SunOS case (when nearly all of the
+       ifdef's are off) correctly now.
+
 Tue Mar 14 16:08:08 1995    <tytso@rsx-11.mit.edu>
 
        * Makefile.in, configure.in: Use the libdes425 library so that the
index 1f22083f2a99c402874087bb87a473ce0d933e3f..70dd6588d89c254da98aff0744966a8b94fac742 100644 (file)
@@ -164,6 +164,22 @@ void update_wtmp(ent)
 
     if ((fd = open(WTMP_FILE, O_WRONLY|O_APPEND, 0)) >= 0) {
        if (!fstat(fd, &statb)) {
+         (void)memset((char *)&ut, 0, sizeof(ut));
+         (void)strncpy(ut.ut_line, ent->ut_line, sizeof(ut.ut_line));
+         (void)strncpy(ut.ut_name, ent->ut_name, sizeof(ut.ut_name));
+#ifndef NO_UT_HOST
+         (void)strncpy(ut.ut_host, ent->ut_host, sizeof(ut.ut_host));
+#endif
+         (void)time(&ut.ut_time);
+#ifdef HAVE_GETUTENT
+         if (*name) {
+           if (!ut.ut_pid)
+             ut.ut_pid = getpid();
+           ut.ut_type = USER_PROCESS;
+         } else {
+           ut.ut_type = EMPTY;
+         }
+#endif
            if (write(fd, (char *)&ut, sizeof(struct utmp)) !=
                sizeof(struct utmp))
              (void)ftruncate(fd, statb.st_size);