Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()

for output of ./configure options, etc., since ngx_log_stderr() output
length is limited by 2048 characters defined as NGX_MAX_ERROR_STR.
This commit is contained in:
Igor Sysoev 2011-11-14 14:59:00 +00:00
parent dd4490c4e4
commit 07bb4ed971
4 changed files with 38 additions and 18 deletions

View File

@ -214,47 +214,49 @@ main(int argc, char *const *argv)
}
if (ngx_show_version) {
ngx_log_stderr(0, "nginx version: " NGINX_VER);
ngx_write_stderr("nginx version: " NGINX_VER NGX_LINEFEED);
if (ngx_show_help) {
ngx_log_stderr(0,
ngx_write_stderr(
"Usage: nginx [-?hvVtq] [-s signal] [-c filename] "
"[-p prefix] [-g directives]" CRLF CRLF
"Options:" CRLF
" -?,-h : this help" CRLF
" -v : show version and exit" CRLF
"[-p prefix] [-g directives]" NGX_LINEFEED
NGX_LINEFEED
"Options:" NGX_LINEFEED
" -?,-h : this help" NGX_LINEFEED
" -v : show version and exit" NGX_LINEFEED
" -V : show version and configure options then exit"
CRLF
" -t : test configuration and exit" CRLF
NGX_LINEFEED
" -t : test configuration and exit" NGX_LINEFEED
" -q : suppress non-error messages "
"during configuration testing" CRLF
"during configuration testing" NGX_LINEFEED
" -s signal : send signal to a master process: "
"stop, quit, reopen, reload" CRLF
"stop, quit, reopen, reload" NGX_LINEFEED
#ifdef NGX_PREFIX
" -p prefix : set prefix path (default: "
NGX_PREFIX ")" CRLF
NGX_PREFIX ")" NGX_LINEFEED
#else
" -p prefix : set prefix path (default: NONE)" CRLF
" -p prefix : set prefix path (default: NONE)" NGX_LINEFEED
#endif
" -c filename : set configuration file (default: "
NGX_CONF_PATH ")" CRLF
NGX_CONF_PATH ")" NGX_LINEFEED
" -g directives : set global directives out of configuration "
"file" CRLF
"file" NGX_LINEFEED NGX_LINEFEED
);
}
if (ngx_show_configure) {
ngx_write_stderr(
#ifdef NGX_COMPILER
ngx_log_stderr(0, "built by " NGX_COMPILER);
"built by " NGX_COMPILER NGX_LINEFEED
#endif
#if (NGX_SSL)
#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
ngx_log_stderr(0, "TLS SNI support enabled");
"TLS SNI support enabled" NGX_LINEFEED
#else
ngx_log_stderr(0, "TLS SNI support disabled");
"TLS SNI support disabled" NGX_LINEFEED
#endif
#endif
ngx_log_stderr(0, "configure arguments:" NGX_CONFIGURE);
"configure arguments:" NGX_CONFIGURE NGX_LINEFEED);
}
if (!ngx_test_config) {

View File

@ -203,6 +203,22 @@ void ngx_cdecl ngx_log_stderr(ngx_err_t err, const char *fmt, ...);
u_char *ngx_log_errno(u_char *buf, u_char *last, ngx_err_t err);
/*
* ngx_write_stderr() cannot be implemented as macro, since
* MSVC does not allow to use #ifdef inside macro parameters.
*
* ngx_write_fd() is used instead of ngx_write_console(), since
* CharToOemBuff() inside ngx_write_console() cannot be used with
* read only buffer as destination and CharToOemBuff() is not needed
* for ngx_write_stderr() anyway.
*/
static ngx_inline void
ngx_write_stderr(char *text)
{
(void) ngx_write_fd(ngx_stderr, text, strlen(text));
}
extern ngx_module_t ngx_errlog_module;
extern ngx_uint_t ngx_use_stderr;

View File

@ -128,6 +128,7 @@ ngx_write_fd(ngx_fd_t fd, void *buf, size_t n)
#define ngx_linefeed(p) *p++ = LF;
#define NGX_LINEFEED_SIZE 1
#define NGX_LINEFEED "\x0a"
#define ngx_rename_file(o, n) rename((const char *) o, (const char *) n)

View File

@ -115,6 +115,7 @@ ssize_t ngx_write_console(ngx_fd_t fd, void *buf, size_t size);
#define ngx_linefeed(p) *p++ = CR; *p++ = LF;
#define NGX_LINEFEED_SIZE 2
#define NGX_LINEFEED CRLF
#define ngx_delete_file(name) DeleteFile((const char *) name)