]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Fix handling of "-l stdout"
authorAlan T. DeKok <aland@freeradius.org>
Tue, 29 Mar 2011 13:53:01 +0000 (15:53 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 29 Mar 2011 13:53:01 +0000 (15:53 +0200)
src/main/log.c
src/main/radiusd.c

index 96bf4a305feb9d52af6c81149164961f495a37c5..8bdd021f78e0ec1182085f69cec27dcef3379e57 100644 (file)
@@ -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:
index ecd20124c56e5d9ea7ebcd76851b35654bace115..56759bd41053bddbceeb143b365bb22f31de1a7f 100644 (file)
@@ -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 {