=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/sshlogin.c,v retrieving revision 1.7.2.1 retrieving revision 1.8 diff -u -r1.7.2.1 -r1.8 --- src/usr.bin/ssh/sshlogin.c 2004/08/19 22:37:33 1.7.2.1 +++ src/usr.bin/ssh/sshlogin.c 2004/06/21 17:36:31 1.8 @@ -39,18 +39,13 @@ */ #include "includes.h" -RCSID("$OpenBSD: sshlogin.c,v 1.7.2.1 2004/08/19 22:37:33 brad Exp $"); +RCSID("$OpenBSD: sshlogin.c,v 1.8 2004/06/21 17:36:31 avsm Exp $"); #include #include #include "sshlogin.h" #include "log.h" -#include "buffer.h" -#include "servconf.h" -extern Buffer loginmsg; -extern ServerOptions options; - /* * Returns the time when the user last logged in. Returns 0 if the * information is not available. This must be called before record_login. @@ -63,7 +58,6 @@ struct lastlog ll; char *lastlog; int fd; - off_t pos, r; lastlog = _PATH_LASTLOG; buf[0] = '\0'; @@ -71,17 +65,7 @@ fd = open(lastlog, O_RDONLY); if (fd < 0) return 0; - - pos = (long) uid * sizeof(ll); - r = lseek(fd, pos, SEEK_SET); - if (r == -1) { - error("%s: lseek: %s", __func__, strerror(errno)); - return (0); - } - if (r != pos) { - debug("%s: truncated lastlog", __func__); - return (0); - } + lseek(fd, (off_t) ((long) uid * sizeof(ll)), SEEK_SET); if (read(fd, &ll, sizeof(ll)) != sizeof(ll)) { close(fd); return 0; @@ -90,41 +74,11 @@ if (bufsize > sizeof(ll.ll_host) + 1) bufsize = sizeof(ll.ll_host) + 1; strncpy(buf, ll.ll_host, bufsize - 1); - buf[bufsize - 1] = '\0'; + buf[bufsize - 1] = 0; return ll.ll_time; } /* - * Generate and store last login message. This must be done before - * login_login() is called and lastlog is updated. - */ -static void -store_lastlog_message(const char *user, uid_t uid) -{ - char *time_string, hostname[MAXHOSTNAMELEN] = "", buf[512]; - time_t last_login_time; - - if (!options.print_lastlog) - return; - - last_login_time = get_last_login_time(uid, user, hostname, - sizeof(hostname)); - - if (last_login_time != 0) { - time_string = ctime(&last_login_time); - if (strchr(time_string, '\n')) - *strchr(time_string, '\n') = '\0'; - if (strcmp(hostname, "") == 0) - snprintf(buf, sizeof(buf), "Last login: %s\r\n", - time_string); - else - snprintf(buf, sizeof(buf), "Last login: %s from %s\r\n", - time_string, hostname); - buffer_append(&loginmsg, buf, strlen(buf)); - } -} - -/* * Records that the user has logged in. I wish these parts of operating * systems were more standardized. */ @@ -136,9 +90,6 @@ struct lastlog ll; char *lastlog; struct utmp u; - - /* save previous login details before writing new */ - store_lastlog_message(user, uid); /* Construct an utmp/wtmp entry. */ memset(&u, 0, sizeof(u));