update lastlog as well as wtmp
authorPaul Mackerras <paulus@samba.org>
Thu, 27 Nov 1997 06:07:29 +0000 (06:07 +0000)
committerPaul Mackerras <paulus@samba.org>
Thu, 27 Nov 1997 06:07:29 +0000 (06:07 +0000)
pppd/auth.c

index 1dfb148f28cd3e060de1d24bbb6df91ce045f788..f3f770b3f64c5a8a3b232e9babbb41da037f6559 100644 (file)
@@ -33,7 +33,7 @@
  */
 
 #ifndef lint
-static char rcsid[] = "$Id: auth.c,v 1.32 1997/07/14 03:52:33 paulus Exp $";
+static char rcsid[] = "$Id: auth.c,v 1.33 1997/11/27 06:07:29 paulus Exp $";
 #endif
 
 #include <stdio.h>
@@ -46,6 +46,8 @@ static char rcsid[] = "$Id: auth.c,v 1.32 1997/07/14 03:52:33 paulus Exp $";
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/socket.h>
+#include <utmp.h>
+#include <fcntl.h>
 
 #include <netdb.h>
 #include <netinet/in.h>
@@ -141,9 +143,6 @@ static int  scan_authfile __P((FILE *, char *, char *, u_int32_t, char *,
 static void free_wordlist __P((struct wordlist *));
 static void auth_script __P((char *));
 static void set_allowed_addrs __P((int, struct wordlist *));
-#ifdef CBCP_SUPPORT
-static void callback_phase __P((int));
-#endif
 
 /*
  * An Open on LCP has requested a change from Dead to Establish phase.
@@ -810,6 +809,22 @@ login(user, passwd, msg, msglen)
     if (strncmp(tty, "/dev/", 5) == 0)
        tty += 5;
     logwtmp(tty, user, remote_name);           /* Add wtmp login entry */
+
+#ifdef _PATH_LASTLOG
+    {
+           struct lastlog ll;
+           int fd;
+
+           if ((fd = open(_PATH_LASTLOG, O_RDWR, 0)) >= 0) {
+               (void)lseek(fd, (off_t)(pw->pw_uid * sizeof(ll)), SEEK_SET);
+               memset((void *)&ll, 0, sizeof(ll));
+               (void)time(&ll.ll_time);
+               (void)strncpy(ll.ll_line, tty, sizeof(ll.ll_line));
+               (void)write(fd, (char *)&ll, sizeof(ll));
+               (void)close(fd);
+           }
+    }
+#endif
     logged_in = TRUE;
 
     return (UPAP_AUTHACK);