From 3420845a7a52ec7e57b5f2246a5dca4ded8962b0 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Thu, 27 Nov 1997 06:07:29 +0000 Subject: [PATCH] update lastlog as well as wtmp --- pppd/auth.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/pppd/auth.c b/pppd/auth.c index 1dfb148..f3f770b 100644 --- a/pppd/auth.c +++ b/pppd/auth.c @@ -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 @@ -46,6 +46,8 @@ static char rcsid[] = "$Id: auth.c,v 1.32 1997/07/14 03:52:33 paulus Exp $"; #include #include #include +#include +#include #include #include @@ -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); -- 2.39.2