comparison src/os/unix/ngx_solaris_sendfilev_chain.c @ 3063:6f6d7ea70805

refactor EAGAIN/EINTR processing
author Igor Sysoev <igor@sysoev.ru>
date Sun, 30 Aug 2009 09:42:29 +0000
parents f69d1aab6a0f
children d620f497c50f
comparison
equal deleted inserted replaced
3062:aa720192937b 3063:6f6d7ea70805
166 n = sendfilev(c->fd, vec.elts, vec.nelts, &sent); 166 n = sendfilev(c->fd, vec.elts, vec.nelts, &sent);
167 167
168 if (n == -1) { 168 if (n == -1) {
169 err = ngx_errno; 169 err = ngx_errno;
170 170
171 if (err == NGX_EAGAIN || err == NGX_EINTR) { 171 switch (err) {
172 if (err == NGX_EINTR) { 172 case NGX_EAGAIN:
173 eintr = 1; 173 break;
174 } 174
175 175 case NGX_EINTR:
176 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, err, 176 eintr = 1;
177 "sendfilev() sent only %uz bytes", sent); 177 break;
178 178
179 } else { 179 default:
180 wev->error = 1; 180 wev->error = 1;
181 ngx_connection_error(c, err, "sendfilev() failed"); 181 ngx_connection_error(c, err, "sendfilev() failed");
182 return NGX_CHAIN_ERROR; 182 return NGX_CHAIN_ERROR;
183 } 183 }
184
185 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, err,
186 "sendfilev() sent only %uz bytes", sent);
184 } 187 }
185 188
186 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0, 189 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
187 "sendfilev: %z %z", n, sent); 190 "sendfilev: %z %z", n, sent);
188 191