=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/session.c,v retrieving revision 1.133 retrieving revision 1.134 diff -u -r1.133 -r1.134 --- src/usr.bin/ssh/session.c 2002/03/28 15:34:51 1.133 +++ src/usr.bin/ssh/session.c 2002/03/29 18:59:31 1.134 @@ -33,7 +33,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: session.c,v 1.133 2002/03/28 15:34:51 markus Exp $"); +RCSID("$OpenBSD: session.c,v 1.134 2002/03/29 18:59:31 markus Exp $"); #include "ssh.h" #include "ssh1.h" @@ -543,10 +543,8 @@ do_login(Session *s, const char *command) { char *time_string; - char hostname[MAXHOSTNAMELEN]; socklen_t fromlen; struct sockaddr_storage from; - time_t last_login_time; struct passwd * pw = s->pw; pid_t pid = getpid(); @@ -564,13 +562,6 @@ } } - /* Get the time and hostname when the user last logged in. */ - if (options.print_lastlog) { - hostname[0] = '\0'; - last_login_time = get_last_login_time(pw->pw_uid, pw->pw_name, - hostname, sizeof(hostname)); - } - /* Record that there was a login on that tty from the remote host. */ if (!use_privsep) record_login(pid, s->tty, pw->pw_name, pw->pw_uid, @@ -581,14 +572,15 @@ if (check_quietlogin(s, command)) return; - if (options.print_lastlog && last_login_time != 0) { - time_string = ctime(&last_login_time); + if (options.print_lastlog && s->last_login_time != 0) { + time_string = ctime(&s->last_login_time); if (strchr(time_string, '\n')) *strchr(time_string, '\n') = 0; - if (strcmp(hostname, "") == 0) + if (strcmp(s->hostname, "") == 0) printf("Last login: %s\r\n", time_string); else - printf("Last login: %s from %s\r\n", time_string, hostname); + printf("Last login: %s from %s\r\n", time_string, + s->hostname); } do_motd(); @@ -1254,6 +1246,12 @@ if (s->ttyfd != -1) { packet_disconnect("Protocol error: you already have a pty."); return 0; + } + /* Get the time and hostname when the user last logged in. */ + if (options.print_lastlog) { + s->hostname[0] = '\0'; + s->last_login_time = get_last_login_time(s->pw->pw_uid, + s->pw->pw_name, s->hostname, sizeof(s->hostname)); } s->term = packet_get_string(&len);