Date: Mon, 5 Aug 2002 13:40:04 -0700 (PDT) From: Stephen Cravey <cravey@gotbrains.org> To: freebsd-bugs@FreeBSD.org Subject: Re: misc/41328: ssh logins in 4.6.1 no longer give incoming mail status Message-ID: <200208052040.g75Ke4tn063599@freefall.freebsd.org>
index | next in thread | raw e-mail
The following reply was made to PR misc/41328; it has been noted by GNATS.
From: Stephen Cravey <cravey@gotbrains.org>
To: "Andrey A. Chernov" <ache@nagual.pp.ru>
Cc: <FreeBSD-gnats-submit@FreeBSD.ORG>
Subject: Re: misc/41328: ssh logins in 4.6.1 no longer give incoming mail
status
Date: Mon, 5 Aug 2002 15:35:02 -0500 (CDT)
On Mon, 5 Aug 2002, Andrey A. Chernov wrote:
---snip---
> Try this patch:
---snip---
The line numbers didn't match up to what I had.. I applied it manually,
but I'm not sure how to get openssh compiled and installed with it other
than a make world. Can you give me some suggestions? I'm getting better
at this. Really, I am. :)
My diff follows. Let me know if I missed something.
-Stephen
*** session.c.oldd Mon Aug 5 12:35:37 2002
--- session.c Mon Aug 5 12:49:53 2002
***************
*** 1269,1274 ****
--- 1269,1277 ----
const char *shell, *shell0, *hostname = NULL;
struct passwd *pw = s->pw;
u_int i;
+ #ifdef HAVE_LOGIN_CAP
+ int lc_requirehome, lc_nocheckmail;
+ #endif
/* remove hostkey from the child's memory */
destroy_sensitive_data();
***************
*** 1327,1332 ****
--- 1330,1340 ----
/* XXX better use close-on-exec? -markus */
channel_close_all();
+ #ifdef HAVE_LOGIN_CAP
+ lc_requirehome = login_getcapbool(lc, "requirehome", 0);
+ lc_nocheckmail = login_getcapbool(lc, "nocheckmail", 0);
+ login_close(lc);
+ #endif
/*
* Close any extra file descriptors. Note that there may still be
* descriptors left by system functions. They will be closed later.
***************
*** 1365,1371 ****
fprintf(stderr, "Could not chdir to home directory %s: %s\n",
pw->pw_dir, strerror(errno));
#ifdef HAVE_LOGIN_CAP
! if (login_getcapbool(lc, "requirehome", 0))
exit(1);
#endif
}
--- 1373,1379 ----
fprintf(stderr, "Could not chdir to home directory %s: %s\n",
pw->pw_dir, strerror(errno));
#ifdef HAVE_LOGIN_CAP
! if (lc_requirehome)
exit(1);
#endif
}
***************
*** 1403,1408 ****
--- 1411,1439 ----
errno = EINVAL;
perror(shell);
exit(1);
+ }
+
+ /*
+ * Check for mail if we have a tty.
+ */
+ if (s->ttyfd != -1
+ #ifdef HAVE_LOGIN_CAP
+ && !lc_nocheckmail
+ #endif
+ ) {
+ char *mailbox;
+ struct stat mailstat;
+
+ mailbox = getenv("MAIL");
+ if (mailbox != NULL) {
+ if (stat(mailbox, &mailstat) != 0 || mailstat.st_size == 0)
+ ;
+ else if (mailstat.st_mtime < mailstat.st_atime)
+ printf("You have mail.\n");
+ else
+ printf("You have new mail.\n");
+ }
+
}
/* Execute the shell. */
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200208052040.g75Ke4tn063599>
