aboutsummaryrefslogtreecommitdiff
path: root/src/event/ngx_event_pipe.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/event/ngx_event_pipe.c')
-rw-r--r--src/event/ngx_event_pipe.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/event/ngx_event_pipe.c b/src/event/ngx_event_pipe.c
index 261308913..dddf2cfe1 100644
--- a/src/event/ngx_event_pipe.c
+++ b/src/event/ngx_event_pipe.c
@@ -19,6 +19,7 @@ static int ngx_event_pipe_drain_chains(ngx_event_pipe_t *p);
int ngx_event_pipe(ngx_event_pipe_t *p, int do_write)
{
+ int flags;
ngx_event_t *rev, *wev;
for ( ;; ) {
@@ -45,7 +46,9 @@ int ngx_event_pipe(ngx_event_pipe_t *p, int do_write)
if (p->upstream->fd != -1) {
rev = p->upstream->read;
- if (ngx_handle_read_event(rev, (rev->eof || rev->error)) == NGX_ERROR) {
+ flags = (rev->eof || rev->error) ? NGX_CLOSE_EVENT : 0;
+
+ if (ngx_handle_read_event(rev, flags) == NGX_ERROR) {
return NGX_ABORT;
}
@@ -54,12 +57,10 @@ int ngx_event_pipe(ngx_event_pipe_t *p, int do_write)
}
}
-ngx_log_debug(p->log, "DOWN: %d" _ p->downstream->fd);
-
if (p->downstream->fd != -1) {
wev = p->downstream->write;
-
- if (ngx_handle_write_event(wev, p->send_lowat) == NGX_ERROR) {
+ wev->available = p->send_lowat;
+ if (ngx_handle_write_event(wev, NGX_LOWAT_EVENT) == NGX_ERROR) {
return NGX_ABORT;
}