Problems addressed:

1) options.print_lastlog was not honored.
2) "Last login: ..." was printed twice.
3) "copyright" was not printed
4) No newline was before motd.

Reviewed by:	maintainer's silence in 2 weeks (with my constant reminders)
This commit is contained in:
Andrey A. Chernov 2002-07-26 02:20:00 +00:00
parent 103d66460c
commit 59ac432a4d

View File

@ -752,14 +752,14 @@ do_login(Session *s, const char *command)
return;
#ifdef USE_PAM
if (!is_pam_password_change_required())
if (options.print_lastlog && !is_pam_password_change_required())
print_pam_messages();
#endif /* USE_PAM */
#ifdef WITH_AIXAUTHENTICATE
if (aixloginmsg && *aixloginmsg)
printf("%s\n", aixloginmsg);
#endif /* WITH_AIXAUTHENTICATE */
#ifndef USE_PAM
if (options.print_lastlog && s->last_login_time != 0) {
time_string = ctime(&s->last_login_time);
if (strchr(time_string, '\n'))
@ -770,6 +770,7 @@ do_login(Session *s, const char *command)
printf("Last login: %s from %s\r\n", time_string,
s->hostname);
}
#endif /* !USE_PAM */
do_motd();
}
@ -782,6 +783,24 @@ do_motd(void)
{
FILE *f;
char buf[256];
#ifdef HAVE_LOGIN_CAP
const char *fname;
#endif
#ifdef HAVE_LOGIN_CAP
fname = login_getcapstr(lc, "copyright", NULL, NULL);
if (fname != NULL && (f = fopen(fname, "r")) != NULL) {
while (fgets(buf, sizeof(buf), f) != NULL)
fputs(buf, stdout);
fclose(f);
} else
#endif /* HAVE_LOGIN_CAP */
(void)printf("%s\n\t%s %s\n",
"Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994",
"The Regents of the University of California. ",
"All rights reserved.");
(void)printf("\n");
if (options.print_motd) {
#ifdef HAVE_LOGIN_CAP