diff options
author | Eric Wong <normalperson@yhbt.net> | 2007-09-05 01:19:37 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2007-09-05 01:19:37 +0000 |
commit | ac58dce7df97a97b8e2d71a76b5fa8805653959a (patch) | |
tree | fe01ad6dc8141757fe435df7576e15b3e7d7263a /src/log.c | |
parent | 7992ff37d084847a92ec7496a7fb5625ac45c569 (diff) | |
download | mpd-ac58dce7df97a97b8e2d71a76b5fa8805653959a.tar.gz mpd-ac58dce7df97a97b8e2d71a76b5fa8805653959a.tar.xz mpd-ac58dce7df97a97b8e2d71a76b5fa8805653959a.zip |
Redirect stdin *before* we establish a listen socket
This way we'll avoid listening on fd=0 and have a better
chance of having fd=0 as /dev/null
git-svn-id: https://svn.musicpd.org/mpd/trunk@6852 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src/log.c')
-rw-r--r-- | src/log.c | 29 |
1 files changed, 0 insertions, 29 deletions
@@ -39,34 +39,6 @@ static int err_fd = -1; static const char *out_filename; static const char *err_filename; -/* - * redirect stdin to /dev/null to work around a libao bug - * there are likely other bugs in other libraries (and even our code!) - * that check for fd > 0, so it's easiest to just keep - * fd = 0 == /dev/null for now... - */ -static void redirect_stdin(void) -{ - int fd, st; - struct stat ss; - - if ((st = fstat(STDIN_FILENO, &ss)) < 0) { - if ((fd = open("/dev/null", O_RDONLY) > 0)) { - DEBUG("stdin closed, and could not open /dev/null " - "as fd=0, some external library bugs " - "may be exposed...\n"); - close(fd); - } - return; - } - if (!isatty(STDIN_FILENO)) - return; - if ((fd = open("/dev/null", O_RDONLY)) < 0) - FATAL("failed to open /dev/null %s\n", strerror(errno)); - if (dup2(fd, STDIN_FILENO) < 0) - FATAL("dup2 stdin: %s\n", strerror(errno)); -} - static void redirect_logs(void) { assert(out_fd > 0); @@ -197,7 +169,6 @@ void setup_log_output(const int use_stdout) stdout_mode = 0; flushWarningLog(); } - redirect_stdin(); } #define log_func(func,level,fp) \ |