- (djm) Bug #178: On AIX /etc/nologin wasnt't shown to users. Fix from
   Ralf.Wenk@fh-karlsruhe.de and dtucker@zip.com.au
diff --git a/ChangeLog b/ChangeLog
index 0c7bfac..890b162 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,8 @@
    on one by peak@argo.troja.mff.cuni.cz
  - (djm) Bug #111: Run syslog and stderr logging through strnvis to eliminate
    nasties. Report from peak@argo.troja.mff.cuni.cz
+ - (djm) Bug #178: On AIX /etc/nologin wasnt't shown to users. Fix from 
+   Ralf.Wenk@fh-karlsruhe.de and dtucker@zip.com.au
 
 20030103
  - (djm) Bug #461: ssh-copy-id fails with no arguments. Patch from 
@@ -938,4 +940,4 @@
      save auth method before monitor_reset_key_state(); bugzilla bug #284;
      ok provos@
 
-$Id: ChangeLog,v 1.2546 2003/01/07 06:04:18 djm Exp $
+$Id: ChangeLog,v 1.2547 2003/01/07 06:38:58 djm Exp $
diff --git a/auth.c b/auth.c
index ee21149..7deded2 100644
--- a/auth.c
+++ b/auth.c
@@ -218,6 +218,8 @@
 	 */
 	if ( (pw->pw_uid != 0) && (geteuid() == 0) &&
 	    loginrestrictions(pw->pw_name, S_RLOGIN, NULL, &loginmsg) != 0) {
+		int loginrestrict_errno = errno;
+
 		if (loginmsg && *loginmsg) {
 			/* Remove embedded newlines (if any) */
 			char *p;
@@ -227,9 +229,13 @@
 			}
 			/* Remove trailing newline */
 			*--p = '\0';
-			log("Login restricted for %s: %.100s", pw->pw_name, loginmsg);
+			log("Login restricted for %s: %.100s", pw->pw_name, 
+			    loginmsg);
 		}
-		return 0;
+		/* Don't fail if /etc/nologin  set */
+	    	if (!(loginrestrict_errno == EPERM && 
+		    stat(_PATH_NOLOGIN, &st) == 0))
+			return 0;
 	}
 #endif /* WITH_AIXAUTHENTICATE */
 
diff --git a/session.c b/session.c
index 9832d7a..c16cdcc 100644
--- a/session.c
+++ b/session.c
@@ -1194,6 +1194,7 @@
 		while (fgets(buf, sizeof(buf), f))
 			fputs(buf, stderr);
 		fclose(f);
+		fflush(NULL);
 		exit(254);
 	}
 }