Win32: MSVC 2015 compatibility.

Resolved warnings about declarations that hide previous local declarations.
Warnings about WSASocketA() being deprecated resolved by explicit use of
WSASocketW() instead of WSASocket().  When compiling without IPv6 support,
WinSock deprecated warnings are disabled to allow use of gethostbyname().
This commit is contained in:
Maxim Dounin 2015-08-17 18:09:17 +03:00
parent 1576cd10aa
commit 84b0ad63fb
7 changed files with 19 additions and 17 deletions

View File

@ -1770,7 +1770,6 @@ ngx_http_fastcgi_process_header(ngx_http_request_t *r)
#if (NGX_HTTP_CACHE)
if (f->large_stderr && r->cache) {
u_char *start;
ssize_t len;
ngx_http_fastcgi_header_t *fh;

View File

@ -375,7 +375,7 @@ ngx_http_map_cmp_dns_wildcards(const void *one, const void *two)
static char *
ngx_http_map(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
{
ngx_int_t rc, index;
ngx_int_t rv, index;
ngx_str_t *value, name;
ngx_uint_t i, key;
ngx_http_map_conf_ctx_t *ctx;
@ -546,19 +546,19 @@ found:
value[0].data++;
}
rc = ngx_hash_add_key(&ctx->keys, &value[0], var,
rv = ngx_hash_add_key(&ctx->keys, &value[0], var,
(ctx->hostnames) ? NGX_HASH_WILDCARD_KEY : 0);
if (rc == NGX_OK) {
if (rv == NGX_OK) {
return NGX_CONF_OK;
}
if (rc == NGX_DECLINED) {
if (rv == NGX_DECLINED) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"invalid hostname or wildcard \"%V\"", &value[0]);
}
if (rc == NGX_BUSY) {
if (rv == NGX_BUSY) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"conflicting parameter \"%V\"", &value[0]);
}

View File

@ -434,8 +434,7 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
if (ngx_strncmp(value[i].data, "ipv6only=o", 10) == 0) {
#if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
struct sockaddr *sa;
u_char buf[NGX_SOCKADDR_STRLEN];
u_char buf[NGX_SOCKADDR_STRLEN];
sa = &ls->u.sockaddr;

View File

@ -21,9 +21,9 @@ typedef int socklen_t;
#define ngx_socket(af, type, proto) \
WSASocket(af, type, proto, NULL, 0, WSA_FLAG_OVERLAPPED)
WSASocketW(af, type, proto, NULL, 0, WSA_FLAG_OVERLAPPED)
#define ngx_socket_n "WSASocket()"
#define ngx_socket_n "WSASocketW()"
int ngx_nonblocking(ngx_socket_t s);
int ngx_blocking(ngx_socket_t s);

View File

@ -21,6 +21,11 @@
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_DEPRECATE
/* enable gethostbyname() in msvc2015 */
#if !(NGX_HAVE_INET6)
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#endif
/*
* we need to include <windows.h> explicitly before <winsock2.h> because
* the warning 4201 is enabled in <windows.h>

View File

@ -372,8 +372,7 @@ ngx_stream_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
if (ngx_strncmp(value[i].data, "ipv6only=o", 10) == 0) {
#if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
struct sockaddr *sa;
u_char buf[NGX_SOCKADDR_STRLEN];
u_char buf[NGX_SOCKADDR_STRLEN];
sa = &ls->u.sockaddr;

View File

@ -528,18 +528,18 @@ ngx_stream_proxy_init_upstream(ngx_stream_session_t *s)
c = s->connection;
if (c->log->log_level >= NGX_LOG_INFO) {
ngx_str_t s;
ngx_str_t str;
u_char addr[NGX_SOCKADDR_STRLEN];
s.len = NGX_SOCKADDR_STRLEN;
s.data = addr;
str.len = NGX_SOCKADDR_STRLEN;
str.data = addr;
if (ngx_connection_local_sockaddr(pc, &s, 1) == NGX_OK) {
if (ngx_connection_local_sockaddr(pc, &str, 1) == NGX_OK) {
handler = c->log->handler;
c->log->handler = NULL;
ngx_log_error(NGX_LOG_INFO, c->log, 0, "proxy %V connected to %V",
&s, u->peer.name);
&str, u->peer.name);
c->log->handler = handler;
}