aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/ngx_linux_sendfile_chain.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-08-30 09:42:29 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-08-30 09:42:29 +0000
commit8c491a77bc297906fb76d4c661547161a0a425be (patch)
treed2e1157a5e851f3ab16369d474cd70cd1f24943b /src/os/unix/ngx_linux_sendfile_chain.c
parentd11fa717f00aa31bd6bba11f03823b89f485d6fc (diff)
downloadnginx-8c491a77bc297906fb76d4c661547161a0a425be.tar.gz
nginx-8c491a77bc297906fb76d4c661547161a0a425be.zip
refactor EAGAIN/EINTR processing
Diffstat (limited to 'src/os/unix/ngx_linux_sendfile_chain.c')
-rw-r--r--src/os/unix/ngx_linux_sendfile_chain.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/src/os/unix/ngx_linux_sendfile_chain.c b/src/os/unix/ngx_linux_sendfile_chain.c
index e102f27d6..a2225d9c6 100644
--- a/src/os/unix/ngx_linux_sendfile_chain.c
+++ b/src/os/unix/ngx_linux_sendfile_chain.c
@@ -263,19 +263,22 @@ ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
if (rc == -1) {
err = ngx_errno;
- if (err == NGX_EAGAIN || err == NGX_EINTR) {
- if (err == NGX_EINTR) {
- eintr = 1;
- }
+ switch (err) {
+ case NGX_EAGAIN:
+ break;
- ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, err,
- "sendfile() is not ready");
+ case NGX_EINTR:
+ eintr = 1;
+ break;
- } else {
+ default:
wev->error = 1;
ngx_connection_error(c, err, "sendfile() failed");
return NGX_CHAIN_ERROR;
}
+
+ ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, err,
+ "sendfile() is not ready");
}
sent = rc > 0 ? rc : 0;
@@ -290,19 +293,22 @@ ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
if (rc == -1) {
err = ngx_errno;
- if (err == NGX_EAGAIN || err == NGX_EINTR) {
- if (err == NGX_EINTR) {
- eintr = 1;
- }
+ switch (err) {
+ case NGX_EAGAIN:
+ break;
- ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, err,
- "writev() not ready");
+ case NGX_EINTR:
+ eintr = 1;
+ break;
- } else {
+ default:
wev->error = 1;
ngx_connection_error(c, err, "writev() failed");
return NGX_CHAIN_ERROR;
}
+
+ ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, err,
+ "writev() not ready");
}
sent = rc > 0 ? rc : 0;