Mercurial > hg > nginx
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 /* |