diff options
| author | Roy Marples <roy@marples.name> | 2009-04-02 23:55:19 +0000 | 
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2009-04-02 23:55:19 +0000 | 
| commit | dea9e11a693527925ecaf007056ae7653d935dfd (patch) | |
| tree | 686a4392e91428663cd262b7ed673ed63a1e5914 /src/rc | |
| parent | 0b12faed7ff0b699565539bf1146b1977a4b9b67 (diff) | |
| download | openrc-dea9e11a693527925ecaf007056ae7653d935dfd.tar.xz | |
When logging, stdout isn't always a tty, which is the case for VPS 
systems, Thanks to mwrobel - fixes #106.
Diffstat (limited to 'src/rc')
| -rw-r--r-- | src/rc/rc-logger.c | 17 | 
1 files changed, 8 insertions, 9 deletions
| diff --git a/src/rc/rc-logger.c b/src/rc/rc-logger.c index cf218ec8..697ebddd 100644 --- a/src/rc/rc-logger.c +++ b/src/rc/rc-logger.c @@ -150,9 +150,6 @@ void rc_logger_open(const char *level)  	int i;  	FILE *log = NULL; -	if (!isatty(STDOUT_FILENO)) -		return; -  	if (!rc_conf_yesno("rc_logger"))  		return; @@ -163,12 +160,14 @@ void rc_logger_open(const char *level)  		     fcntl (signal_pipe[i], F_SETFD, s | FD_CLOEXEC) == -1))  			eerrorx("fcntl: %s", strerror (errno)); -	tcgetattr(STDOUT_FILENO, &tt); -	ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws); - -	/* /dev/pts may not be available yet */ -	if (openpty(&rc_logger_tty, &slave_tty, NULL, &tt, &ws)) -		return; +	if (isatty(STDOUT_FILENO)) { +		tcgetattr(STDOUT_FILENO, &tt); +		ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws); +		if (openpty(&rc_logger_tty, &slave_tty, NULL, &tt, &ws)) +			return; +	} else  +		if (openpty(&rc_logger_tty, &slave_tty, NULL, NULL, NULL)) +			return;  	if ((s = fcntl(rc_logger_tty, F_GETFD, 0)) == 0)  		fcntl(rc_logger_tty, F_SETFD, s | FD_CLOEXEC); | 
