From a70d086812da03f0e0cc8a88622e6298ee82af09 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Wed, 29 Apr 2009 13:07:16 +0000 Subject: fix the previous commit --- src/os/win32/ngx_wsarecv.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'src/os') 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) { -- cgit