From: Alan T. DeKok Date: Tue, 29 Mar 2011 13:53:01 +0000 (+0200) Subject: Fix handling of "-l stdout" X-Git-Tag: release_2_1_11~64 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42d0a5dc40bfab631e5f74ec181045bc5d570bb6;p=thirdparty%2Ffreeradius-server.git Fix handling of "-l stdout" --- diff --git a/src/main/log.c b/src/main/log.c index 96bf4a305fe..8bdd021f78e 100644 --- a/src/main/log.c +++ b/src/main/log.c @@ -144,15 +144,9 @@ int vradlog(int lvl, const char *fmt, va_list ap) #endif case RADLOG_FILES: - write(myconfig->radlog_fd, buffer, strlen(buffer)); - break; - case RADLOG_STDOUT: - write(STDOUT_FILENO, buffer, strlen(buffer)); - break; - case RADLOG_STDERR: - write(STDERR_FILENO, buffer, strlen(buffer)); + write(myconfig->radlog_fd, buffer, strlen(buffer)); break; default: diff --git a/src/main/radiusd.c b/src/main/radiusd.c index ecd20124c56..56759bd4105 100644 --- a/src/main/radiusd.c +++ b/src/main/radiusd.c @@ -228,10 +228,10 @@ int main(int argc, char *argv[]) mainconfig.log_auth = TRUE; mainconfig.log_auth_badpass = TRUE; mainconfig.log_auth_goodpass = TRUE; + fr_log_fp = stdout; do_stdout: mainconfig.radlog_dest = RADLOG_STDOUT; mainconfig.radlog_fd = STDOUT_FILENO; - fr_log_fp = stdout; break; case 'x': @@ -309,15 +309,17 @@ int main(int argc, char *argv[]) } dup2(devnull, STDIN_FILENO); if (mainconfig.radlog_dest == RADLOG_STDOUT) { - mainconfig.radlog_fd = dup(STDOUT_FILENO); setlinebuf(stdout); + mainconfig.radlog_fd = STDOUT_FILENO; + } else { + dup2(devnull, STDOUT_FILENO); } - dup2(devnull, STDOUT_FILENO); if (mainconfig.radlog_dest == RADLOG_STDERR) { - mainconfig.radlog_fd = dup(STDERR_FILENO); - setlinebuf(stdout); + setlinebuf(stderr); + mainconfig.radlog_fd = STDERR_FILENO; + } else { + dup2(devnull, STDERR_FILENO); } - dup2(devnull, STDERR_FILENO); close(devnull); } else {