]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
master: Don't close stderr if logging goes there.
authorTimo Sirainen <tss@iki.fi>
Wed, 16 Mar 2011 17:49:27 +0000 (19:49 +0200)
committerTimo Sirainen <tss@iki.fi>
Wed, 16 Mar 2011 17:49:27 +0000 (19:49 +0200)
src/master/main.c

index 2db65c9d9f7a8895e80d34607af0e40dff33c64f..327b77dfdf9c0111ddfdd6dfd7e0e6ab0537ac27 100644 (file)
@@ -774,8 +774,12 @@ int main(int argc, char *argv[])
        if (chdir(set->base_dir) < 0)
                i_fatal("chdir(%s) failed: %m", set->base_dir);
 
-       if (dup2(null_fd, STDERR_FILENO) < 0)
-               i_fatal("dup2(null_fd) failed: %m");
+       if (strcmp(services->service_set->log_path, "/dev/stderr") != 0 &&
+           strcmp(services->service_set->info_log_path, "/dev/stderr") != 0 &&
+           strcmp(services->service_set->debug_log_path, "/dev/stderr") != 0) {
+               if (dup2(null_fd, STDERR_FILENO) < 0)
+                       i_fatal("dup2(null_fd) failed: %m");
+       }
        i_set_fatal_handler(master_fatal_callback);
        i_set_error_handler(orig_error_callback);