aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-04-29 13:07:16 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-04-29 13:07:16 +0000
commita70d086812da03f0e0cc8a88622e6298ee82af09 (patch)
treef93c85ae64431e5dc54e4a2a895cf2f2dd36a70c /src
parentdcc9205a39d6125988fb8a1fbed275fc389012f1 (diff)
downloadnginx-a70d086812da03f0e0cc8a88622e6298ee82af09.tar.gz
nginx-a70d086812da03f0e0cc8a88622e6298ee82af09.zip
fix the previous commit
Diffstat (limited to 'src')
-rw-r--r--src/core/ngx_connection.c12
-rw-r--r--src/os/win32/ngx_wsarecv.c21
2 files changed, 20 insertions, 13 deletions
diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c
index c5abb7be6..2398d5161 100644
--- a/src/core/ngx_connection.c
+++ b/src/core/ngx_connection.c
@@ -801,15 +801,13 @@ ngx_connection_error(ngx_connection_t *c, ngx_err_t err, char *text)
{
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;
}
diff --git a/src/os/win32/ngx_wsarecv.c b/src/os/win32/ngx_wsarecv.c
index 908d1f38b..19c60ccb9 100644
--- a/src/os/win32/ngx_wsarecv.c
+++ b/src/os/win32/ngx_wsarecv.c
@@ -16,6 +16,7 @@ ngx_wsarecv(ngx_connection_t *c, u_char *buf, size_t size)
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 @@ ngx_wsarecv(ngx_connection_t *c, u_char *buf, size_t size)
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 @@ ngx_overlapped_wsarecv(ngx_connection_t *c, u_char *buf, size_t size)
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 @@ ngx_overlapped_wsarecv(ngx_connection_t *c, u_char *buf, size_t size)
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) {