diff options
author | Igor Sysoev <igor@sysoev.ru> | 2005-03-19 12:38:37 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2005-03-19 12:38:37 +0000 |
commit | c15717285d2157a603bb1b130b26d7baa549be7e (patch) | |
tree | 56dc8346b22bb2660eecd3bc086d263ac6d67326 /src/os/win32 | |
parent | e12fbfe82a176cd386cdcecfeabf43ac8fd870a4 (diff) | |
download | nginx-release-0.1.25.tar.gz nginx-release-0.1.25.zip |
nginx-0.1.25-RELEASE importrelease-0.1.25
*) Bugfix: nginx did run on Linux parisc.
*) Feature: nginx now does not start under FreeBSD if the sysctl
kern.ipc.somaxconn value is too big.
*) Bugfix: if a request was internally redirected by the
ngx_http_index_module module to the ngx_http_proxy_module or
ngx_http_fastcgi_module modules, then the index file was not closed
after request completion.
*) Feature: the "proxy_pass" can be used in location with regular
expression.
*) Feature: the ngx_http_rewrite_filter_module module supports the
condition like "if ($HTTP_USER_AGENT ~ MSIE)".
*) Bugfix: nginx started too slow if the large number of addresses and
text values were used in the "geo" directive.
*) Change: a variable name must be declared as "$name" in the "geo"
directive. The previous variant without "$" is still supported, but
will be removed soon.
*) Feature: the "%{VARIABLE}v" logging parameter.
*) Feature: the "set $name value" directive.
*) Bugfix: gcc 4.0 compatibility.
*) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive.
Diffstat (limited to 'src/os/win32')
-rw-r--r-- | src/os/win32/ngx_alloc.c | 3 | ||||
-rw-r--r-- | src/os/win32/ngx_files.c | 17 | ||||
-rw-r--r-- | src/os/win32/ngx_files.h | 7 | ||||
-rw-r--r-- | src/os/win32/ngx_process_cycle.c | 2 | ||||
-rw-r--r-- | src/os/win32/ngx_socket.c | 13 | ||||
-rw-r--r-- | src/os/win32/ngx_socket.h | 5 | ||||
-rw-r--r-- | src/os/win32/ngx_thread.c | 16 | ||||
-rw-r--r-- | src/os/win32/ngx_thread.h | 11 | ||||
-rw-r--r-- | src/os/win32/ngx_win32_config.h | 24 | ||||
-rw-r--r-- | src/os/win32/ngx_wsarecv_chain.c | 27 | ||||
-rw-r--r-- | src/os/win32/ngx_wsasend_chain.c | 18 |
11 files changed, 93 insertions, 50 deletions
diff --git a/src/os/win32/ngx_alloc.c b/src/os/win32/ngx_alloc.c index e73aa32af..a3bca02a9 100644 --- a/src/os/win32/ngx_alloc.c +++ b/src/os/win32/ngx_alloc.c @@ -15,7 +15,8 @@ void *ngx_alloc(size_t size, ngx_log_t *log) { void *p; - if (!(p = malloc(size))) { + p = malloc(size); + if (p == NULL) { ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "malloc() %uz bytes failed", size); } diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c index ce0fdc966..bea580b24 100644 --- a/src/os/win32/ngx_files.c +++ b/src/os/win32/ngx_files.c @@ -179,7 +179,8 @@ ngx_int_t ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_uint_t collision; ngx_atomic_uint_t num; - if (!(name = ngx_palloc(pool, to->len + 1 + 10 + 1 + sizeof("DELETE")))) { + name = ngx_palloc(pool, to->len + 1 + 10 + 1 + sizeof("DELETE")); + if (name == NULL) { return NGX_ERROR; } @@ -301,6 +302,20 @@ ngx_int_t ngx_read_dir(ngx_dir_t *dir) } +ngx_int_t +ngx_de_info(u_char *name, ngx_dir_t *dir) +{ + return NGX_OK; +} + + +ngx_int_t +ngx_de_link_info(u_char *name, ngx_dir_t *dir) +{ + return NGX_OK; +} + + ngx_int_t ngx_file_append_mode(ngx_fd_t fd) { #if 0 diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h index 48b54b38a..a91743132 100644 --- a/src/os/win32/ngx_files.h +++ b/src/os/win32/ngx_files.h @@ -132,10 +132,13 @@ ngx_int_t ngx_read_dir(ngx_dir_t *dir); #define ngx_de_name(dir) ((u_char *) (dir)->fd.cFileName) #define ngx_de_namelen(dir) ngx_strlen((dir)->fd.cFileName) -#define ngx_de_info(name, dir) NGX_OK + +ngx_int_t ngx_de_info(u_char *name, ngx_dir_t *dir); #define ngx_de_info_n "dummy()" -#define ngx_de_link_info(name, dir) NGX_OK + +ngx_int_t ngx_de_link_info(u_char *name, ngx_dir_t *dir); #define ngx_de_link_info_n "dummy()" + #define ngx_de_is_dir(dir) \ ((dir)->fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) #define ngx_de_is_file(dir) \ diff --git a/src/os/win32/ngx_process_cycle.c b/src/os/win32/ngx_process_cycle.c index e0635a5eb..2251ff2df 100644 --- a/src/os/win32/ngx_process_cycle.c +++ b/src/os/win32/ngx_process_cycle.c @@ -206,7 +206,7 @@ static void *ngx_worker_thread_cycle(void *data) cycle = (ngx_cycle_t *) ngx_cycle; - for ( ;; ) { + while (!ngx_quit) { ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "worker cycle"); ngx_process_events(cycle); diff --git a/src/os/win32/ngx_socket.c b/src/os/win32/ngx_socket.c index fc7743356..7590c3376 100644 --- a/src/os/win32/ngx_socket.c +++ b/src/os/win32/ngx_socket.c @@ -8,7 +8,8 @@ #include <ngx_core.h> -int ngx_nonblocking(ngx_socket_t s) +int +ngx_nonblocking(ngx_socket_t s) { unsigned long nb = 1; @@ -16,9 +17,17 @@ int ngx_nonblocking(ngx_socket_t s) } -int ngx_blocking(ngx_socket_t s) +int +ngx_blocking(ngx_socket_t s) { unsigned long nb = 0; return ioctlsocket(s, FIONBIO, &nb); } + + +int +ngx_tcp_push(ngx_socket_t s) +{ + return 0; +} diff --git a/src/os/win32/ngx_socket.h b/src/os/win32/ngx_socket.h index 88752889a..95ecbe8cd 100644 --- a/src/os/win32/ngx_socket.h +++ b/src/os/win32/ngx_socket.h @@ -98,10 +98,7 @@ extern LPFN_GETACCEPTEXSOCKADDRS getacceptexsockaddrs; extern LPFN_TRANSMITFILE transmitfile; -static ngx_inline int ngx_tcp_push(ngx_socket_t s) { - return 0; -} - +int ngx_tcp_push(ngx_socket_t s); #define ngx_tcp_push_n "tcp_push()" diff --git a/src/os/win32/ngx_thread.c b/src/os/win32/ngx_thread.c index 8fae0e379..0703ac7d4 100644 --- a/src/os/win32/ngx_thread.c +++ b/src/os/win32/ngx_thread.c @@ -66,3 +66,19 @@ ngx_mutex_t *ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags) { return (ngx_mutex_t *) 1; } + + +/* STUB */ + +ngx_int_t +ngx_mutex_lock(ngx_mutex_t *m) { + return NGX_OK; +} + + +ngx_int_t +ngx_mutex_trylock(ngx_mutex_t *m) { + return NGX_OK; +} + +/**/ diff --git a/src/os/win32/ngx_thread.h b/src/os/win32/ngx_thread.h index 5b3c4da98..b55dcca4d 100644 --- a/src/os/win32/ngx_thread.h +++ b/src/os/win32/ngx_thread.h @@ -22,8 +22,8 @@ typedef struct { } ngx_mutex_t; -ngx_err_t ngx_create_thread(ngx_tid_t *tid, void* (*func)(void *arg), void *arg, - ngx_log_t *log); +ngx_err_t ngx_create_thread(ngx_tid_t *tid, void* (*func)(void *arg), + void *arg, ngx_log_t *log); ngx_int_t ngx_init_threads(int n, size_t size, ngx_cycle_t *cycle); ngx_err_t ngx_thread_key_create(ngx_tls_key_t *key); @@ -41,14 +41,15 @@ ngx_err_t ngx_thread_set_tls(ngx_tls_key_t *key, void *data); ngx_mutex_t *ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags); +ngx_int_t ngx_mutex_lock(ngx_mutex_t *m); +ngx_int_t ngx_mutex_trylock(ngx_mutex_t *m); + /* STUB */ #define NGX_MUTEX_LIGHT 0 -#define ngx_mutex_lock(m) NGX_OK -#define ngx_mutex_trylock(m) NGX_OK #define ngx_mutex_unlock(m) -/* */ +/**/ extern ngx_int_t ngx_threads_n; diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h index 36af23906..02d4db5c6 100644 --- a/src/os/win32/ngx_win32_config.h +++ b/src/os/win32/ngx_win32_config.h @@ -37,7 +37,6 @@ #pragma warning(default:4201) - /* disable some "-W4" level warnings */ /* 'type cast': from function pointer to data pointer */ @@ -49,14 +48,13 @@ /* unreferenced formal parameter */ #pragma warning(disable:4100) -/* conditional expression is constant */ +/* FD_SET() and FD_CLR(): conditional expression is constant */ #pragma warning(disable:4127) -/* unreachable code */ -#pragma warning(disable:4702) - +#if 0 /* assignment within conditional expression */ #pragma warning(disable:4706) +#endif /* function 'ngx_handle_write_event' not inlined */ #pragma warning(disable:4710) @@ -66,9 +64,6 @@ #ifdef __WATCOMC__ -/* unreachable code */ -#pragma disable_message(201) - /* symbol 'ngx_rbtree_min' has been defined, but not referenced */ #pragma disable_message(202) @@ -80,25 +75,16 @@ /* the end of the precompiled headers */ #pragma hdrstop -/* - * 'fd' is assigned a value that is never used in function ngx_event_init_conf - */ -#pragma warn -8004 - -/* condition is always false */ -#pragma warn -8008 - /* functions containing (for|while|some if) are not expanded inline */ #pragma warn -8027 /* unreferenced formal parameter */ #pragma warn -8057 +#if 0 /* assignment within conditional expression */ #pragma warn -8060 - -/* unreachable code */ -#pragma warn -8066 +#endif #endif diff --git a/src/os/win32/ngx_wsarecv_chain.c b/src/os/win32/ngx_wsarecv_chain.c index 2e2f7cc92..c22a08df7 100644 --- a/src/os/win32/ngx_wsarecv_chain.c +++ b/src/os/win32/ngx_wsarecv_chain.c @@ -9,16 +9,21 @@ #include <ngx_event.h> -ssize_t ngx_wsarecv_chain(ngx_connection_t *c, ngx_chain_t *chain) +#define NGX_WSABUFS 8 + + +ssize_t +ngx_wsarecv_chain(ngx_connection_t *c, ngx_chain_t *chain) { int rc; u_char *prev; u_long bytes, flags; size_t size; - WSABUF *wsabuf; ngx_err_t err; - ngx_array_t io; + ngx_array_t vec; ngx_event_t *rev; + LPWSABUF wsabuf; + WSABUF wsabufs[NGX_WSABUFS]; prev = NULL; wsabuf = NULL; @@ -26,7 +31,11 @@ ssize_t ngx_wsarecv_chain(ngx_connection_t *c, ngx_chain_t *chain) size = 0; bytes = 0; - ngx_init_array(io, c->pool, 10, sizeof(WSABUF), NGX_ERROR); + vec.elts = wsabufs; + vec.nelts = 0; + vec.size = sizeof(WSABUF); + vec.nalloc = NGX_WSABUFS; + vec.pool = c->pool; /* coalesce the neighbouring bufs */ @@ -35,7 +44,11 @@ ssize_t ngx_wsarecv_chain(ngx_connection_t *c, ngx_chain_t *chain) wsabuf->len += chain->buf->end - chain->buf->last; } else { - ngx_test_null(wsabuf, ngx_push_array(&io), NGX_ERROR); + wsabuf = ngx_array_push(&vec); + if (wsabuf == NULL) { + return NGX_ERROR; + } + wsabuf->buf = (char *) chain->buf->last; wsabuf->len = chain->buf->end - chain->buf->last; } @@ -46,10 +59,10 @@ ssize_t ngx_wsarecv_chain(ngx_connection_t *c, ngx_chain_t *chain) } ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0, - "WSARecv: %d:%d", io.nelts, wsabuf->len); + "WSARecv: %d:%d", vec.nelts, wsabuf->len); - rc = WSARecv(c->fd, io.elts, io.nelts, &bytes, &flags, NULL, NULL); + rc = WSARecv(c->fd, vec.elts, vec.nelts, &bytes, &flags, NULL, NULL); rev = c->read; diff --git a/src/os/win32/ngx_wsasend_chain.c b/src/os/win32/ngx_wsasend_chain.c index d5b1334a1..bc3b01574 100644 --- a/src/os/win32/ngx_wsasend_chain.c +++ b/src/os/win32/ngx_wsasend_chain.c @@ -12,8 +12,8 @@ #define NGX_WSABUFS 8 -ngx_chain_t *ngx_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, - off_t limit) +ngx_chain_t * +ngx_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) { int rc; u_char *prev; @@ -22,9 +22,9 @@ ngx_chain_t *ngx_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, ngx_err_t err; ngx_event_t *wev; ngx_array_t vec; + ngx_chain_t *cl; LPWSABUF wsabuf; WSABUF wsabufs[NGX_WSABUFS]; - ngx_chain_t *cl; wev = c->write; @@ -78,7 +78,8 @@ ngx_chain_t *ngx_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, wsabuf->len += cl->buf->last - cl->buf->pos; } else { - if (!(wsabuf = ngx_array_push(&vec))) { + wsabuf = ngx_array_push(&vec); + if (wsabuf == NULL) { return NGX_CHAIN_ERROR; } @@ -154,18 +155,18 @@ ngx_chain_t *ngx_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, } -ngx_chain_t *ngx_overlapped_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, - off_t limit) +ngx_chain_t * +ngx_overlapped_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) { int rc; u_char *prev; u_long size, send, sent; - LPWSABUF wsabuf; ngx_err_t err; ngx_event_t *wev; ngx_array_t vec; ngx_chain_t *cl; LPWSAOVERLAPPED ovlp; + LPWSABUF wsabuf; WSABUF wsabufs[NGX_WSABUFS]; wev = c->write; @@ -222,7 +223,8 @@ ngx_chain_t *ngx_overlapped_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, wsabuf->len += cl->buf->last - cl->buf->pos; } else { - if (!(wsabuf = ngx_array_push(&vec))) { + wsabuf = ngx_array_push(&vec); + if (wsabuf == NULL) { return NGX_CHAIN_ERROR; } |