diff options
author | Igor Sysoev <igor@sysoev.ru> | 2003-11-21 06:30:49 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2003-11-21 06:30:49 +0000 |
commit | d9d0ca12688034d481e2f1f5cf13a098338ec31d (patch) | |
tree | 9dca776a24d0bd34064b21d77fe5b6d290510445 /src/http/ngx_http_request.c | |
parent | 1ef225254ef3f7fc5470289bdeabad2e31507d55 (diff) | |
download | nginx-d9d0ca12688034d481e2f1f5cf13a098338ec31d.tar.gz nginx-d9d0ca12688034d481e2f1f5cf13a098338ec31d.zip |
nginx-0.0.1-2003-11-21-09:30:49 import
Diffstat (limited to 'src/http/ngx_http_request.c')
-rw-r--r-- | src/http/ngx_http_request.c | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index ccaa73f7d..1a6485fa8 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -1116,10 +1116,20 @@ static void ngx_http_set_keepalive(ngx_http_request_t *r) wev = c->write; wev->event_handler = ngx_http_empty_handler; - if ((ngx_event_flags & NGX_USE_LEVEL_EVENT) && wev->active) { - if (ngx_del_event(wev, NGX_WRITE_EVENT, 0) == NGX_ERROR) { - ngx_http_close_connection(c); - return; + if (wev->active) { + if (ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) { + if (ngx_del_event(wev, NGX_WRITE_EVENT, NGX_DISABLE_EVENT) + == NGX_ERROR) + { + ngx_http_close_connection(c); + return; + } + + } else if (ngx_event_flags & NGX_USE_LEVEL_EVENT) { + if (ngx_del_event(wev, NGX_WRITE_EVENT, 0) == NGX_ERROR) { + ngx_http_close_connection(c); + return; + } } } @@ -1218,11 +1228,20 @@ static void ngx_http_set_lingering_close(ngx_http_request_t *r) wev = c->write; wev->event_handler = ngx_http_empty_handler; - if ((ngx_event_flags & NGX_USE_LEVEL_EVENT) && wev->active) { - if (ngx_del_event(wev, NGX_WRITE_EVENT, 0) == NGX_ERROR) { - ngx_http_close_request(r, 0); - ngx_http_close_connection(c); - return; + if (wev->active) { + if (ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) { + if (ngx_del_event(wev, NGX_WRITE_EVENT, NGX_DISABLE_EVENT) + == NGX_ERROR) + { + ngx_http_close_connection(c); + return; + } + + } else if (ngx_event_flags & NGX_USE_LEVEL_EVENT) { + if (ngx_del_event(wev, NGX_WRITE_EVENT, 0) == NGX_ERROR) { + ngx_http_close_connection(c); + return; + } } } |