aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Denis Vlasenko <vda.linux@googlemail.com>2008-11-07 01:12:16 +0000
committerGravatar Denis Vlasenko <vda.linux@googlemail.com>2008-11-07 01:12:16 +0000
commit694b514148681193e1710daa073f5bc1263b0d95 (patch)
tree172f1891c742473657b04f72976059a56315e254
parent239d06bd4710e8463c6cc7e5411965066a6d134e (diff)
downloadbusybox-694b514148681193e1710daa073f5bc1263b0d95.tar.gz
busybox-694b514148681193e1710daa073f5bc1263b0d95.tar.bz2
login: fix /etc/nologin support
build system: fix config warnings ("Overlong line") function old new delta login_main 1735 1774 +39 __libc_tcdrain - 23 +23 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/0 up/down: 62/0) Total: 62 bytes
-rw-r--r--loginutils/login.c23
-rw-r--r--mailutils/Config.in15
2 files changed, 25 insertions, 13 deletions
diff --git a/loginutils/login.c b/loginutils/login.c
index 8732b99f1..861382f12 100644
--- a/loginutils/login.c
+++ b/loginutils/login.c
@@ -118,18 +118,25 @@ static void die_if_nologin(void)
{
FILE *fp;
int c;
+ int empty = 1;
- if (access("/etc/nologin", F_OK))
+ fp = fopen_for_read("/etc/nologin");
+ if (!fp) /* assuming it does not exist */
return;
- fp = fopen_for_read("/etc/nologin");
- if (fp) {
- while ((c = getc(fp)) != EOF)
- bb_putchar((c=='\n') ? '\r' : c);
- fflush(stdout);
- fclose(fp);
- } else
+ while ((c = getc(fp)) != EOF) {
+ if (c == '\n')
+ bb_putchar('\r');
+ bb_putchar(c);
+ empty = 0;
+ }
+ if (empty)
puts("\r\nSystem closed for routine maintenance\r");
+
+ fclose(fp);
+ fflush(NULL);
+ /* Users say that they do need this prior to exit: */
+ tcdrain(STDOUT_FILENO);
exit(EXIT_FAILURE);
}
#else
diff --git a/mailutils/Config.in b/mailutils/Config.in
index b8d697737..4edb0aefd 100644
--- a/mailutils/Config.in
+++ b/mailutils/Config.in
@@ -17,15 +17,18 @@ config POPMAILDIR
bool "popmaildir"
default n
help
- Simple yet powerful POP3 mail popper. Delivers content of remote mailboxes to local Maildir.
+ Simple yet powerful POP3 mail popper. Delivers content
+ of remote mailboxes to local Maildir.
config FEATURE_POPMAILDIR_DELIVERY
bool "Allow message filters and custom delivery program"
default n
depends on POPMAILDIR
help
- Allow to use a custom program to filter the content of the message before actual delivery (-F "prog [args...]").
- Allow to use a custom program for message actual delivery (-M "prog [args...]").
+ Allow to use a custom program to filter the content
+ of the message before actual delivery (-F "prog [args...]").
+ Allow to use a custom program for message actual delivery
+ (-M "prog [args...]").
config REFORMIME
bool "reformime"
@@ -38,7 +41,8 @@ config FEATURE_REFORMIME_COMPAT
default y
depends on REFORMIME
help
- Accept (for compatibility only) and ignore options other than -x and -X.
+ Accept (for compatibility only) and ignore options
+ other than -x and -X.
config SENDMAIL
bool "sendmail"
@@ -59,6 +63,7 @@ config FEATURE_SENDMAIL_MAILXX
default n
depends on FEATURE_SENDMAIL_MAILX
help
- Allow to specify Cc: addresses and some additional headers: Errors-To:.
+ Allow to specify Cc: addresses and some additional headers:
+ Errors-To:
endmenu