comparison src/os/win32/ngx_wsarecv.c @ 2775:01c691e31032

fix the previous commit
author Igor Sysoev <igor@sysoev.ru>
date Wed, 29 Apr 2009 13:07:16 +0000
parents e438ec9e736a
children 88987e52be42
comparison
equal deleted inserted replaced
2774:baad3036086e 2775:01c691e31032
14 { 14 {
15 int rc; 15 int rc;
16 u_long bytes, flags; 16 u_long bytes, flags;
17 WSABUF wsabuf[1]; 17 WSABUF wsabuf[1];
18 ngx_err_t err; 18 ngx_err_t err;
19 ngx_uint_t n;
19 ngx_event_t *rev; 20 ngx_event_t *rev;
20 21
21 wsabuf[0].buf = (char *) buf; 22 wsabuf[0].buf = (char *) buf;
22 wsabuf[0].len = size; 23 wsabuf[0].len = size;
23 flags = 0; 24 flags = 0;
38 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, err, 39 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, err,
39 "WSARecv() not ready"); 40 "WSARecv() not ready");
40 return NGX_AGAIN; 41 return NGX_AGAIN;
41 } 42 }
42 43
43 rev->error = 1; 44 n = ngx_connection_error(c, err, "WSARecv() failed");
44 ngx_connection_error(c, err, "WSARecv() failed");
45 45
46 return NGX_ERROR; 46 if (n == NGX_ERROR){
47 rev->error = 1;
48 }
49
50 return n;
47 } 51 }
48 52
49 if (bytes < size) { 53 if (bytes < size) {
50 rev->ready = 0; 54 rev->ready = 0;
51 } 55 }
63 { 67 {
64 int rc; 68 int rc;
65 u_long bytes, flags; 69 u_long bytes, flags;
66 WSABUF wsabuf[1]; 70 WSABUF wsabuf[1];
67 ngx_err_t err; 71 ngx_err_t err;
72 ngx_uint_t n;
68 ngx_event_t *rev; 73 ngx_event_t *rev;
69 LPWSAOVERLAPPED ovlp; 74 LPWSAOVERLAPPED ovlp;
70 75
71 rev = c->read; 76 rev = c->read;
72 77
129 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, err, 134 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, err,
130 "WSARecv() posted"); 135 "WSARecv() posted");
131 return NGX_AGAIN; 136 return NGX_AGAIN;
132 } 137 }
133 138
134 rev->error = 1; 139 n = ngx_connection_error(c, err, "WSARecv() failed");
135 ngx_connection_error(c, err, "WSARecv() failed"); 140
136 return NGX_ERROR; 141 if (n == NGX_ERROR){
142 rev->error = 1;
143 }
144
145 return n;
137 } 146 }
138 147
139 if (ngx_event_flags & NGX_USE_IOCP_EVENT) { 148 if (ngx_event_flags & NGX_USE_IOCP_EVENT) {
140 149
141 /* 150 /*