Skip site navigation (1)Skip section navigation (2)
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>

next in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200208052040.g75Ke4tn063599>