# HG changeset patch # User Igor Sysoev # Date 1116850065 0 # Node ID dadfa78d227027348d7f9d1e7b7093d06ba545a0 # Parent ea9642a655147383fcf72c2f6c178146223e74be nginx-0.1.33-RELEASE import *) Bugfix: nginx could not be built with the --without-pcre parameter; the bug had appeared in 0.1.29. *) Bugfix: 3, 4, 7, and 8 the "proxy_set_header" directives in one level cause the bus fault on start up. *) Bugfix: the HTTP protocol was specified in the HTTPS redirects. *) Bugfix: if the "rewrite" directive used the captures inside the "if" directive, then the 500 error code was returned. diff --git a/auto/cc/ccc b/auto/cc/ccc --- a/auto/cc/ccc +++ b/auto/cc/ccc @@ -10,27 +10,30 @@ ngx_include_opt="-I" CFLAGS="$CFLAGS -msg_enable level6 -msg_fatal level6" +CFLAGS="$CFLAGS -msg_disable unknownmacro" +CFLAGS="$CFLAGS -msg_disable unusedincl" CFLAGS="$CFLAGS -msg_disable unnecincl" CFLAGS="$CFLAGS -msg_disable nestincl" -CFLAGS="$CFLAGS -msg_disable unusedincl" -CFLAGS="$CFLAGS -msg_disable unknownmacro" CFLAGS="$CFLAGS -msg_disable strctpadding" CFLAGS="$CFLAGS -msg_disable ansialiascast" CFLAGS="$CFLAGS -msg_disable inlinestoclsmod" CFLAGS="$CFLAGS -msg_disable cxxkeyword" CFLAGS="$CFLAGS -msg_disable longlongsufx" +CFLAGS="$CFLAGS -msg_disable valuepres" # STUB CFLAGS="$CFLAGS -msg_disable truncintcast" CFLAGS="$CFLAGS -msg_disable trunclongcast" + CFLAGS="$CFLAGS -msg_disable truncintasn" CFLAGS="$CFLAGS -msg_disable trunclongint" CFLAGS="$CFLAGS -msg_disable intconcastsgn" CFLAGS="$CFLAGS -msg_disable intconstsign" +CFLAGS="$CFLAGS -msg_disable switchlong" +CFLAGS="$CFLAGS -msg_disable subscrbounds2" + CFLAGS="$CFLAGS -msg_disable hexoctunsign" -CFLAGS="$CFLAGS -msg_disable switchlong" -CFLAGS="$CFLAGS -msg_disable valuepres" -CFLAGS="$CFLAGS -msg_disable subscrbounds2" + CFLAGS="$CFLAGS -msg_disable ignorecallval" CFLAGS="$CFLAGS -msg_disable nonstandcast" CFLAGS="$CFLAGS -msg_disable embedcomment" @@ -38,4 +41,5 @@ CFLAGS="$CFLAGS -msg_disable unreachcode CFLAGS="$CFLAGS -msg_disable questcompare2" CFLAGS="$CFLAGS -msg_disable unusedtop" CFLAGS="$CFLAGS -msg_disable unrefdecl" + CFLAGS="$CFLAGS -msg_disable bitnotint" diff --git a/auto/cc/conf b/auto/cc/conf --- a/auto/cc/conf +++ b/auto/cc/conf @@ -124,7 +124,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then . auto/feature - if [ $NGX_CC_NAME = 'ccc' ]; then + if [ "$NGX_CC_NAME" = "ccc" ]; then echo "checking for C99 variadic macros ... disabled" else ngx_feature="C99 variadic macros" diff --git a/auto/cc/name b/auto/cc/name --- a/auto/cc/name +++ b/auto/cc/name @@ -34,7 +34,7 @@ if `$CC -v 2>&1 | grep 'gcc version' 2>& echo " using GNU C compiler" else -if `$CC -V 2>&1 | grep '^Intel(R) C++ Compiler' 2>&1 >/dev/null`; then +if `$CC -V 2>&1 | grep '^Intel(R) C' 2>&1 >/dev/null`; then NGX_CC_NAME=icc echo " using Intel C++ compiler" @@ -49,6 +49,7 @@ if `$CC -V 2>&1 | grep '^aCC: ' 2>&1 >/d echo " using HP aC++ compiler" else + NGX_CC_NAME=unknown echo " unknown" fi # acc diff --git a/auto/os/conf b/auto/os/conf --- a/auto/os/conf +++ b/auto/os/conf @@ -53,8 +53,9 @@ case "$NGX_PLATFORM" in ;; OSF1:*) - # HP Tru64 + # Tru64 UNIX have=NGX_TRU64 . auto/have_headers + have=NGX_HAVE_STRERROR_R . auto/nohave CORE_INCS="$UNIX_INCS" CORE_DEPS="$UNIX_DEPS $POSIX_DEPS" CORE_SRCS="$UNIX_SRCS" diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml --- a/docs/xml/nginx/changes.xml +++ b/docs/xml/nginx/changes.xml @@ -9,6 +9,53 @@ nginx changelog + + + + +nginx не собирался с параметром --without-pcre; +ошибка появилась в 0.1.29. + + +nginx could not be built with the --without-pcre parameter; +bug appeared in 0.1.29. + + + + + +3, 5, 7 и 8 директив proxy_set_header на одном уровне вызывали +bus fault при запуске. + + +3, 4, 7, and 8 the "proxy_set_header" directives in one level cause +the bus fault on start up. + + + + + +в редиректах внутри HTTPS сервера был указан протокол HTTP. + + +the HTTP protocol was specified in the HTTPS redirects. + + + + + +если директива rewrite использовала выделения внутри директивы if, то +возвращалась ошибка 500. + + +if the "rewrite" directive used the captures inside the "if" directive, then +the 500 error code was returned. + + + + + + diff --git a/src/core/nginx.c b/src/core/nginx.c --- a/src/core/nginx.c +++ b/src/core/nginx.c @@ -440,7 +440,7 @@ ngx_save_argv(ngx_cycle_t *cycle, int ar return NGX_ERROR; } - ngx_cpystrn((u_char *) ngx_argv[i], (u_char *) argv[i], len); + (void) ngx_cpystrn((u_char *) ngx_argv[i], (u_char *) argv[i], len); } ngx_argv[i] = NULL; @@ -473,8 +473,8 @@ ngx_core_module_create_conf(ngx_cycle_t ccf->master = NGX_CONF_UNSET; ccf->worker_processes = NGX_CONF_UNSET; ccf->debug_points = NGX_CONF_UNSET; - ccf->user = (ngx_uid_t) NGX_CONF_UNSET; - ccf->group = (ngx_gid_t) NGX_CONF_UNSET; + ccf->user = (ngx_uid_t) NGX_CONF_UNSET_UINT; + ccf->group = (ngx_gid_t) NGX_CONF_UNSET_UINT; #if (NGX_THREADS) ccf->worker_threads = NGX_CONF_UNSET; ccf->thread_stack_size = NGX_CONF_UNSET_SIZE; @@ -507,7 +507,7 @@ ngx_core_module_init_conf(ngx_cycle_t *c #if !(NGX_WIN32) - if (ccf->user == (uid_t) NGX_CONF_UNSET && geteuid() == 0) { + if (ccf->user == (uid_t) NGX_CONF_UNSET_UINT && geteuid() == 0) { pwd = getpwnam(NGX_USER); if (pwd == NULL) { @@ -573,7 +573,7 @@ ngx_set_user(ngx_conf_t *cf, ngx_command struct group *grp; ngx_str_t *value; - if (ccf->user != (uid_t) NGX_CONF_UNSET) { + if (ccf->user != (uid_t) NGX_CONF_UNSET_UINT) { return "is duplicate"; } diff --git a/src/core/nginx.h b/src/core/nginx.h --- a/src/core/nginx.h +++ b/src/core/nginx.h @@ -8,7 +8,7 @@ #define _NGINX_H_INCLUDED_ -#define NGINX_VER "nginx/0.1.32" +#define NGINX_VER "nginx/0.1.33" #define NGINX_VAR "NGINX" #define NGX_NEWPID_EXT ".newbin" diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c --- a/src/core/ngx_conf_file.c +++ b/src/core/ngx_conf_file.c @@ -457,7 +457,7 @@ ngx_conf_read_token(ngx_conf_t *cf) return NGX_OK; case '}': - if (cf->args->nelts > 0) { + if (cf->args->nelts != 0) { ngx_log_error(NGX_LOG_EMERG, cf->log, 0, "unexpected \"}\" in %s:%ui", cf->conf_file->file.name.data, diff --git a/src/core/ngx_config.h b/src/core/ngx_config.h --- a/src/core/ngx_config.h +++ b/src/core/ngx_config.h @@ -126,9 +126,9 @@ typedef long ngx_flag_t; #if ((__GNU__ == 2) && (__GNUC_MINOR__ < 8)) -#define NGX_MAX_UINT32_VALUE 0xffffffffLL +#define NGX_MAX_UINT32_VALUE (uint32_t) 0xffffffffLL #else -#define NGX_MAX_UINT32_VALUE 0xffffffff +#define NGX_MAX_UINT32_VALUE (uint32_t) 0xffffffff #endif diff --git a/src/core/ngx_connection.h b/src/core/ngx_connection.h --- a/src/core/ngx_connection.h +++ b/src/core/ngx_connection.h @@ -17,8 +17,8 @@ typedef struct { struct sockaddr *sockaddr; socklen_t socklen; /* size of sockaddr */ - int addr; /* offset to address in sockaddr */ - int addr_text_max_len; + size_t addr; /* offset to address in sockaddr */ + size_t addr_text_max_len; ngx_str_t addr_text; int family; diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c --- a/src/core/ngx_cycle.c +++ b/src/core/ngx_cycle.c @@ -717,7 +717,7 @@ void ngx_reopen_files(ngx_cycle_t *cycle continue; } #else - if (user != (ngx_uid_t) -1) { + if (user != (ngx_uid_t) NGX_CONF_UNSET_UINT) { if (ngx_file_info((const char *) file[i].name.data, &fi) == -1) { ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c --- a/src/core/ngx_file.c +++ b/src/core/ngx_file.c @@ -61,8 +61,8 @@ ngx_create_temp_file(ngx_file_t *file, n n = ngx_next_temp_number(0); for ( ;; ) { - ngx_sprintf(file->name.data + path->name.len + 1 + path->len, - "%0muA%Z", n); + (void) ngx_sprintf(file->name.data + path->name.len + 1 + path->len, + "%0muA%Z", n); ngx_create_hashed_filename(file, path); @@ -123,7 +123,8 @@ ngx_create_temp_file(ngx_file_t *file, n void ngx_create_hashed_filename(ngx_file_t *file, ngx_path_t *path) { - ngx_uint_t i, name, pos, level; + size_t name, pos, level; + ngx_uint_t i; name = file->name.len; pos = path->name.len + 1; @@ -151,8 +152,9 @@ ngx_create_hashed_filename(ngx_file_t *f ngx_int_t ngx_create_path(ngx_file_t *file, ngx_path_t *path) { - int i, pos; - ngx_err_t err; + size_t pos; + ngx_err_t err; + ngx_uint_t i; pos = path->name.len; @@ -344,7 +346,7 @@ ngx_create_pathes(ngx_cycle_t *cycle, ng } } - if (user == (ngx_uid_t) -1) { + if (user == (ngx_uid_t) NGX_CONF_UNSET_UINT) { continue; } diff --git a/src/core/ngx_file.h b/src/core/ngx_file.h --- a/src/core/ngx_file.h +++ b/src/core/ngx_file.h @@ -33,8 +33,8 @@ struct ngx_file_s { struct ngx_path_s { ngx_str_t name; - ngx_uint_t len; - ngx_uint_t level[3]; + size_t len; + size_t level[3]; ngx_gc_handler_pt cleaner; u_char *conf_file; diff --git a/src/core/ngx_garbage_collector.c b/src/core/ngx_garbage_collector.c --- a/src/core/ngx_garbage_collector.c +++ b/src/core/ngx_garbage_collector.c @@ -6,7 +6,6 @@ #include #include -#include diff --git a/src/core/ngx_inet.c b/src/core/ngx_inet.c --- a/src/core/ngx_inet.c +++ b/src/core/ngx_inet.c @@ -225,8 +225,9 @@ ngx_inet_upstream_parse(ngx_conf_t *cf, { char *err; u_char *host; + size_t len; in_addr_t in_addr; - ngx_uint_t i, len; + ngx_uint_t i; ngx_peers_t *peers; struct hostent *h; struct sockaddr_in *sin; @@ -281,7 +282,7 @@ ngx_inet_upstream_parse(ngx_conf_t *cf, return NULL; } - ngx_cpystrn(host, u->host.data, u->host.len + 1); + (void) ngx_cpystrn(host, u->host.data, u->host.len + 1); /* AF_INET only */ diff --git a/src/core/ngx_log.c b/src/core/ngx_log.c --- a/src/core/ngx_log.c +++ b/src/core/ngx_log.c @@ -179,7 +179,7 @@ ngx_log_write(ngx_log_t *log, u_char *er errstr[len++] = LF; - write(log->file->fd, errstr, len); + (void) write(log->file->fd, errstr, len); #endif } diff --git a/src/core/ngx_output_chain.c b/src/core/ngx_output_chain.c --- a/src/core/ngx_output_chain.c +++ b/src/core/ngx_output_chain.c @@ -381,12 +381,12 @@ ngx_output_chain_copy_buf(ngx_buf_t *dst n = ngx_read_file(src->file, dst->pos, (size_t) size, src->file_pos); if (n == NGX_ERROR) { - return n; + return (ngx_int_t) n; } #if (NGX_FILE_AIO_READ) if (n == NGX_AGAIN) { - return n; + return (ngx_int_t) n; } #endif diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c --- a/src/core/ngx_string.c +++ b/src/core/ngx_string.c @@ -15,7 +15,7 @@ ngx_cpystrn(u_char *dst, u_char *src, si return dst; } - for (/* void */; --n; dst++, src++) { + for ( /* void */ ; --n; dst++, src++) { *dst = *src; if (*dst == '\0') { diff --git a/src/core/ngx_times.c b/src/core/ngx_times.c --- a/src/core/ngx_times.c +++ b/src/core/ngx_times.c @@ -155,14 +155,14 @@ ngx_time_update(time_t s) p = cached_http_time[slot]; - ngx_sprintf(p, "%s, %02d %s %4d %02d:%02d:%02d GMT", - week[ngx_cached_gmtime.ngx_tm_wday], - ngx_cached_gmtime.ngx_tm_mday, - months[ngx_cached_gmtime.ngx_tm_mon - 1], - ngx_cached_gmtime.ngx_tm_year, - ngx_cached_gmtime.ngx_tm_hour, - ngx_cached_gmtime.ngx_tm_min, - ngx_cached_gmtime.ngx_tm_sec); + (void) ngx_sprintf(p, "%s, %02d %s %4d %02d:%02d:%02d GMT", + week[ngx_cached_gmtime.ngx_tm_wday], + ngx_cached_gmtime.ngx_tm_mday, + months[ngx_cached_gmtime.ngx_tm_mon - 1], + ngx_cached_gmtime.ngx_tm_year, + ngx_cached_gmtime.ngx_tm_hour, + ngx_cached_gmtime.ngx_tm_min, + ngx_cached_gmtime.ngx_tm_sec); ngx_cached_http_time.data = p; @@ -175,7 +175,7 @@ ngx_time_update(time_t s) #elif (NGX_HAVE_GMTOFF) ngx_localtime(&tm); - ngx_gmtoff = tm.ngx_tm_gmtoff / 60; + ngx_gmtoff = (ngx_int_t) (tm.ngx_tm_gmtoff / 60); #else @@ -187,22 +187,22 @@ ngx_time_update(time_t s) p = cached_err_log_time[slot]; - ngx_sprintf(p, "%4d/%02d/%02d %02d:%02d:%02d", - tm.ngx_tm_year, tm.ngx_tm_mon, - tm.ngx_tm_mday, tm.ngx_tm_hour, - tm.ngx_tm_min, tm.ngx_tm_sec); + (void) ngx_sprintf(p, "%4d/%02d/%02d %02d:%02d:%02d", + tm.ngx_tm_year, tm.ngx_tm_mon, + tm.ngx_tm_mday, tm.ngx_tm_hour, + tm.ngx_tm_min, tm.ngx_tm_sec); ngx_cached_err_log_time.data = p; p = cached_http_log_time[slot]; - ngx_sprintf(p, "%02d/%s/%d:%02d:%02d:%02d %c%02d%02d", - tm.ngx_tm_mday, months[tm.ngx_tm_mon - 1], - tm.ngx_tm_year, tm.ngx_tm_hour, - tm.ngx_tm_min, tm.ngx_tm_sec, - ngx_gmtoff < 0 ? '-' : '+', - abs(ngx_gmtoff / 60), abs(ngx_gmtoff % 60)); + (void) ngx_sprintf(p, "%02d/%s/%d:%02d:%02d:%02d %c%02d%02d", + tm.ngx_tm_mday, months[tm.ngx_tm_mon - 1], + tm.ngx_tm_year, tm.ngx_tm_hour, + tm.ngx_tm_min, tm.ngx_tm_sec, + ngx_gmtoff < 0 ? '-' : '+', + abs(ngx_gmtoff / 60), abs(ngx_gmtoff % 60)); ngx_cached_http_log_time.data = p; diff --git a/src/core/ngx_unix_domain.c b/src/core/ngx_unix_domain.c --- a/src/core/ngx_unix_domain.c +++ b/src/core/ngx_unix_domain.c @@ -72,7 +72,7 @@ ngx_unix_upstream_parse(ngx_conf_t *cf, peers->number = 1; sun->sun_family = AF_UNIX; - ngx_cpystrn((u_char *) sun->sun_path, u->url.data + 5, len + 1); + (void) ngx_cpystrn((u_char *) sun->sun_path, u->url.data + 5, len + 1); peers->peer[0].sockaddr = (struct sockaddr *) sun; peers->peer[0].socklen = sizeof(struct sockaddr_un); diff --git a/src/http/modules/ngx_http_proxy_module.c b/src/http/modules/ngx_http_proxy_module.c --- a/src/http/modules/ngx_http_proxy_module.c +++ b/src/http/modules/ngx_http_proxy_module.c @@ -311,8 +311,8 @@ static char ngx_http_proxy_version[] = static ngx_table_elt_t ngx_http_proxy_headers[] = { - { 0, ngx_string("Host"), ngx_string("$proxy_host"), }, - { 0, ngx_string("Connection"), ngx_string("close"), }, + { 0, ngx_string("Host"), ngx_string("$proxy_host") }, + { 0, ngx_string("Connection"), ngx_string("close") }, { 0, ngx_null_string, ngx_null_string } }; @@ -1560,6 +1560,8 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t *s = *h; + src = conf->headers_source->elts; + next: continue; diff --git a/src/http/modules/ngx_http_rewrite_module.c b/src/http/modules/ngx_http_rewrite_module.c --- a/src/http/modules/ngx_http_rewrite_module.c +++ b/src/http/modules/ngx_http_rewrite_module.c @@ -556,8 +556,7 @@ ngx_http_rewrite(ngx_conf_t *cf, ngx_com regex_end->redirect = regex->redirect; if (last) { - code = ngx_http_script_add_code(lcf->codes, sizeof(uintptr_t), - ®ex); + code = ngx_http_script_add_code(lcf->codes, sizeof(uintptr_t), ®ex); if (code == NULL) { return NGX_CONF_ERROR; } @@ -713,6 +712,11 @@ ngx_http_rewrite_if(ngx_conf_t *cf, ngx_ } + if (lcf->captures < nlcf->captures) { + lcf->captures = nlcf->captures; + } + + if (elts != lcf->codes->elts) { if_code = (ngx_http_script_if_code_t *) ((u_char *) if_code + ((u_char *) lcf->codes->elts - elts)); diff --git a/src/http/ngx_http_header_filter_module.c b/src/http/ngx_http_header_filter_module.c --- a/src/http/ngx_http_header_filter_module.c +++ b/src/http/ngx_http_header_filter_module.c @@ -264,11 +264,26 @@ ngx_http_header_filter(ngx_http_request_ { r->headers_out.location->hash = 0; - len += sizeof("Location: http://") - 1 - + r->server_name.len + r->headers_out.location->value.len + 2; +#if (NGX_HTTP_SSL) + if (r->connection->ssl) { + len += sizeof("Location: https://") - 1 + + r->server_name.len + + r->headers_out.location->value.len + 2; + + if (r->port != 443) { + len += r->port_text->len; + } - if (r->port != 80) { - len += r->port_text->len; + } else +#endif + { + len += sizeof("Location: http://") - 1 + + r->server_name.len + + r->headers_out.location->value.len + 2; + + if (r->port != 80) { + len += r->port_text->len; + } } } @@ -396,13 +411,33 @@ ngx_http_header_filter(ngx_http_request_ && r->headers_out.location->value.data[0] == '/') { p = b->last + sizeof("Location: ") - 1; - b->last = ngx_cpymem(b->last, "Location: http://", - sizeof("Location: http://") - 1); + + b->last = ngx_cpymem(b->last, "Location: http", + sizeof("Location: http") - 1); + +#if (NGX_HTTP_SSL) + if (r->connection->ssl) { + *b->last++ ='s'; + } +#endif + + *b->last++ = ':'; *b->last++ = '/'; *b->last++ = '/'; b->last = ngx_cpymem(b->last, r->server_name.data, r->server_name.len); - if (r->port != 80) { - b->last = ngx_cpymem(b->last, r->port_text->data, - r->port_text->len); + +#if (NGX_HTTP_SSL) + if (r->connection->ssl) { + if (r->port != 443) { + b->last = ngx_cpymem(b->last, r->port_text->data, + r->port_text->len); + } + } else +#endif + { + if (r->port != 80) { + b->last = ngx_cpymem(b->last, r->port_text->data, + r->port_text->len); + } } b->last = ngx_cpymem(b->last, r->headers_out.location->value.data, diff --git a/src/http/ngx_http_script.c b/src/http/ngx_http_script.c --- a/src/http/ngx_http_script.c +++ b/src/http/ngx_http_script.c @@ -463,6 +463,9 @@ ngx_http_script_start_args_code(ngx_http } + +#if (NGX_PCRE) + void ngx_http_script_regex_start_code(ngx_http_script_engine_t *e) { @@ -693,6 +696,8 @@ ngx_http_script_regex_end_code(ngx_http_ e->ip += sizeof(ngx_http_script_regex_end_code_t); } +#endif + void ngx_http_script_return_code(ngx_http_script_engine_t *e) diff --git a/src/http/ngx_http_script.h b/src/http/ngx_http_script.h --- a/src/http/ngx_http_script.h +++ b/src/http/ngx_http_script.h @@ -79,6 +79,8 @@ typedef struct { } ngx_http_script_copy_capture_code_t; +#if (NGX_PCRE) + typedef struct { ngx_http_script_code_pt code; ngx_regex_t *regex; @@ -114,6 +116,8 @@ typedef struct { uintptr_t redirect:1; } ngx_http_script_regex_end_code_t; +#endif + typedef struct { ngx_http_script_code_pt code; @@ -156,10 +160,11 @@ size_t ngx_http_script_copy_var_len_code void ngx_http_script_copy_var_code(ngx_http_script_engine_t *e); size_t ngx_http_script_copy_capture_len_code(ngx_http_script_engine_t *e); void ngx_http_script_copy_capture_code(ngx_http_script_engine_t *e); +void ngx_http_script_start_args_code(ngx_http_script_engine_t *e); +#if (NGX_PCRE) void ngx_http_script_regex_start_code(ngx_http_script_engine_t *e); void ngx_http_script_regex_end_code(ngx_http_script_engine_t *e); -void ngx_http_script_copy_capture_code(ngx_http_script_engine_t *e); -void ngx_http_script_start_args_code(ngx_http_script_engine_t *e); +#endif void ngx_http_script_return_code(ngx_http_script_engine_t *e); void ngx_http_script_if_code(ngx_http_script_engine_t *e); void ngx_http_script_complex_value_code(ngx_http_script_engine_t *e); diff --git a/src/os/unix/ngx_errno.h b/src/os/unix/ngx_errno.h --- a/src/os/unix/ngx_errno.h +++ b/src/os/unix/ngx_errno.h @@ -52,7 +52,7 @@ u_char *ngx_strerror_r(int err, u_char * #else -/* Solaris has thread-safe strerror() */ +/* Solaris and Tru64 UNIX have thread-safe strerror() */ #define ngx_strerror_r(err, errstr, size) \ ngx_cpystrn(errstr, (u_char *) strerror(err), size) diff --git a/src/os/unix/ngx_time.c b/src/os/unix/ngx_time.c --- a/src/os/unix/ngx_time.c +++ b/src/os/unix/ngx_time.c @@ -14,7 +14,7 @@ void ngx_localtime(ngx_tm_t *tm) time_t now; now = ngx_time(); - localtime_r(&now, tm); + (void) localtime_r(&now, tm); #else time_t now; @@ -37,7 +37,7 @@ void ngx_libc_localtime(struct tm *tm) time_t now; now = ngx_time(); - localtime_r(&now, tm); + (void) localtime_r(&now, tm); #else time_t now; @@ -57,7 +57,7 @@ void ngx_libc_gmtime(struct tm *tm) time_t now; now = ngx_time(); - gmtime_r(&now, tm); + (void) gmtime_r(&now, tm); #else time_t now; diff --git a/src/os/unix/ngx_time.h b/src/os/unix/ngx_time.h --- a/src/os/unix/ngx_time.h +++ b/src/os/unix/ngx_time.h @@ -57,9 +57,9 @@ void ngx_localtime(ngx_tm_t *tm); void ngx_libc_localtime(struct tm *tm); void ngx_libc_gmtime(struct tm *tm); -#define ngx_gettimeofday(tp) gettimeofday(tp, NULL); -#define ngx_msleep(ms) usleep(ms * 1000) -#define ngx_sleep(s) sleep(s) +#define ngx_gettimeofday(tp) (void) gettimeofday(tp, NULL); +#define ngx_msleep(ms) (void) usleep(ms * 1000) +#define ngx_sleep(s) (void) sleep(s) #endif /* _NGX_TIME_H_INCLUDED_ */