Mercurial > hg > nginx
changeset 2775:01c691e31032
fix the previous commit
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 29 Apr 2009 13:07:16 +0000 |
parents | baad3036086e |
children | 88987e52be42 |
files | src/core/ngx_connection.c src/os/win32/ngx_wsarecv.c |
diffstat | 2 files changed, 20 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/ngx_connection.c Wed Apr 29 11:34:58 2009 +0000 +++ b/src/core/ngx_connection.c Wed Apr 29 13:07:16 2009 +0000 @@ -801,15 +801,13 @@ { ngx_uint_t level; -#if (NGX_WIN32) - - /* Winsock returns NGX_ECONNABORTED instead of NGX_ECONNRESET */ + /* Winsock may return NGX_ECONNABORTED instead of NGX_ECONNRESET */ - if (err == NGX_ECONNABORTED -#else - if (err == NGX_ECONNRESET + if ((err == NGX_ECONNRESET +#if (NGX_WIN32) + || err == NGX_ECONNABORTED #endif - && c->log_error == NGX_ERROR_IGNORE_ECONNRESET) + ) && c->log_error == NGX_ERROR_IGNORE_ECONNRESET) { return 0; }
--- a/src/os/win32/ngx_wsarecv.c Wed Apr 29 11:34:58 2009 +0000 +++ b/src/os/win32/ngx_wsarecv.c Wed Apr 29 13:07:16 2009 +0000 @@ -16,6 +16,7 @@ u_long bytes, flags; WSABUF wsabuf[1]; ngx_err_t err; + ngx_uint_t n; ngx_event_t *rev; wsabuf[0].buf = (char *) buf; @@ -40,10 +41,13 @@ return NGX_AGAIN; } - rev->error = 1; - ngx_connection_error(c, err, "WSARecv() failed"); + n = ngx_connection_error(c, err, "WSARecv() failed"); - return NGX_ERROR; + if (n == NGX_ERROR){ + rev->error = 1; + } + + return n; } if (bytes < size) { @@ -65,6 +69,7 @@ u_long bytes, flags; WSABUF wsabuf[1]; ngx_err_t err; + ngx_uint_t n; ngx_event_t *rev; LPWSAOVERLAPPED ovlp; @@ -131,9 +136,13 @@ return NGX_AGAIN; } - rev->error = 1; - ngx_connection_error(c, err, "WSARecv() failed"); - return NGX_ERROR; + n = ngx_connection_error(c, err, "WSARecv() failed"); + + if (n == NGX_ERROR){ + rev->error = 1; + } + + return n; } if (ngx_event_flags & NGX_USE_IOCP_EVENT) {