From 9db2eddd8ad9da27a68e4551fbb78ccd79470b6c Mon Sep 17 00:00:00 2001 From: Vladimir Homutov Date: Mon, 3 Jun 2013 16:54:28 +0400 Subject: [PATCH] Core: fixed stderr redirection on win32 in ngx_reopen_files(). On win32 stderr was not redirected into a file specified by "error_log" while reopening files. Fix is to use platform-independent functions to work with stderr, as already used by ngx_init_cycle() and main() since rev. d8316f307b6a. --- src/core/ngx_cycle.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c index 87b6d7daa..40b8562b4 100644 --- a/src/core/ngx_cycle.c +++ b/src/core/ngx_cycle.c @@ -1228,16 +1228,13 @@ ngx_reopen_files(ngx_cycle_t *cycle, ngx_uid_t user) file[i].fd = fd; } -#if !(NGX_WIN32) + if (cycle->log->file->fd != ngx_stderr) { - if (cycle->log->file->fd != STDERR_FILENO) { - if (dup2(cycle->log->file->fd, STDERR_FILENO) == -1) { - ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, - "dup2(STDERR) failed"); + if (ngx_set_stderr(cycle->log->file->fd) == NGX_FILE_ERROR) { + ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, + ngx_set_stderr_n " failed"); } } - -#endif }