diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2011-11-01 13:56:26 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2011-11-01 13:56:26 +0000 |
| commit | 07eb7bec1f2c2d440fc87d89c09681e5b6939f94 (patch) | |
| tree | 9807c370b073b8f332d9366b552aad073324d752 | |
| parent | 4332c96e3853fb0c3eaa3b9e7a3df1a61618056e (diff) | |
| download | nginx-07eb7bec1f2c2d440fc87d89c09681e5b6939f94.tar.gz nginx-07eb7bec1f2c2d440fc87d89c09681e5b6939f94.tar.bz2 | |
Merging r4155, r4219, r4220, r4230:
Windows related fixes:
*) Fixed segmentation fault with empty config on Windows.
See here for report:
http://mailman.nginx.org/pipermail/nginx-ru/2011-September/043288.html
*) Recent SDKs allow to build IPV6 only for Windows XP or above.
*) Fixing conflict with SDK off_t definition.
*) Fix of building by Microsoft Visual C++ 10 compiler.
| -rw-r--r-- | auto/cc/name | 8 | ||||
| -rw-r--r-- | src/http/ngx_http.c | 8 | ||||
| -rw-r--r-- | src/os/win32/ngx_win32_config.h | 7 |
3 files changed, 18 insertions, 5 deletions
diff --git a/auto/cc/name b/auto/cc/name index d197fc59b..8788bc662 100644 --- a/auto/cc/name +++ b/auto/cc/name @@ -25,6 +25,13 @@ fi if [ "$CC" = cl ]; then if `$NGX_WINE $CC -v 2>&1 \ + | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16' \ + >/dev/null 2>&1`; then + + NGX_CC_NAME=msvc10 + echo " + using Microsoft Visual C++ 10 compiler" + + else if `$NGX_WINE $CC -v 2>&1 \ | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14' \ >/dev/null 2>&1`; then @@ -43,6 +50,7 @@ if [ "$CC" = cl ]; then echo " + using Microsoft Visual C++ compiler" fi fi + fi else if [ "$CC" = wcl386 ]; then diff --git a/src/http/ngx_http.c b/src/http/ngx_http.c index 4f0b79def..1eb22f81e 100644 --- a/src/http/ngx_http.c +++ b/src/http/ngx_http.c @@ -1747,10 +1747,12 @@ ngx_http_add_listening(ngx_conf_t *cf, ngx_http_conf_addr_t *addr) #if (NGX_WIN32) { - ngx_iocp_conf_t *iocpcf; + ngx_iocp_conf_t *iocpcf = NULL; - iocpcf = ngx_event_get_conf(cf->cycle->conf_ctx, ngx_iocp_module); - if (iocpcf->acceptex_read) { + if (ngx_get_conf(cf->cycle->conf_ctx, ngx_events_module)) { + iocpcf = ngx_event_get_conf(cf->cycle->conf_ctx, ngx_iocp_module); + } + if (iocpcf && iocpcf->acceptex_read) { ls->post_accept_buffer_size = cscf->client_header_buffer_size; } } diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h index f098eae36..8ffe95c31 100644 --- a/src/os/win32/ngx_win32_config.h +++ b/src/os/win32/ngx_win32_config.h @@ -9,7 +9,7 @@ #define WIN32 0x0400 -#define _WIN32_WINNT 0x0500 +#define _WIN32_WINNT 0x0501 #define STRICT @@ -126,8 +126,11 @@ typedef unsigned __int64 uint64_t; typedef int intptr_t; typedef u_int uintptr_t; -typedef int ssize_t; +/* Windows defines off_t as long, which is 32-bit */ typedef __int64 off_t; +#define _OFF_T_DEFINED + +typedef int ssize_t; typedef uint32_t in_addr_t; typedef u_short in_port_t; typedef int sig_atomic_t; |
