Skip to content

Commit

Permalink
Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Browse files Browse the repository at this point in the history
for output of ./configure options, etc., since ngx_log_stderr() output
length is limited by 2048 characters defined as NGX_MAX_ERROR_STR.
  • Loading branch information
igorsysoev committed Nov 14, 2011
1 parent dd4490c commit 07bb4ed
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 18 deletions.
38 changes: 20 additions & 18 deletions src/core/nginx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
16 changes: 16 additions & 0 deletions src/core/ngx_log.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
1 change: 1 addition & 0 deletions src/os/unix/ngx_files.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
1 change: 1 addition & 0 deletions src/os/win32/ngx_files.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 07bb4ed

Please sign in to comment.