comparison src/event/ngx_event_pipe.c @ 189:c966c09be66b

nginx-0.0.1-2003-11-18-19:49:00 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 18 Nov 2003 16:49:00 +0000
parents 0061d1f0908d
children 2357fa41738a
comparison
equal deleted inserted replaced
188:0061d1f0908d 189:c966c09be66b
17 static int ngx_event_pipe_drain_chains(ngx_event_pipe_t *p); 17 static int ngx_event_pipe_drain_chains(ngx_event_pipe_t *p);
18 18
19 19
20 int ngx_event_pipe(ngx_event_pipe_t *p, int do_write) 20 int ngx_event_pipe(ngx_event_pipe_t *p, int do_write)
21 { 21 {
22 int flags;
22 ngx_event_t *rev, *wev; 23 ngx_event_t *rev, *wev;
23 24
24 for ( ;; ) { 25 for ( ;; ) {
25 if (do_write) { 26 if (do_write) {
26 if (ngx_event_pipe_write_to_downstream(p) == NGX_ABORT) { 27 if (ngx_event_pipe_write_to_downstream(p) == NGX_ABORT) {
43 } 44 }
44 45
45 if (p->upstream->fd != -1) { 46 if (p->upstream->fd != -1) {
46 rev = p->upstream->read; 47 rev = p->upstream->read;
47 48
48 if (ngx_handle_read_event(rev, (rev->eof || rev->error)) == NGX_ERROR) { 49 flags = (rev->eof || rev->error) ? NGX_CLOSE_EVENT : 0;
50
51 if (ngx_handle_read_event(rev, flags) == NGX_ERROR) {
49 return NGX_ABORT; 52 return NGX_ABORT;
50 } 53 }
51 54
52 if (rev->active) { 55 if (rev->active) {
53 ngx_add_timer(rev, p->read_timeout); 56 ngx_add_timer(rev, p->read_timeout);
54 } 57 }
55 } 58 }
56 59
57 ngx_log_debug(p->log, "DOWN: %d" _ p->downstream->fd);
58
59 if (p->downstream->fd != -1) { 60 if (p->downstream->fd != -1) {
60 wev = p->downstream->write; 61 wev = p->downstream->write;
61 62 wev->available = p->send_lowat;
62 if (ngx_handle_write_event(wev, p->send_lowat) == NGX_ERROR) { 63 if (ngx_handle_write_event(wev, NGX_LOWAT_EVENT) == NGX_ERROR) {
63 return NGX_ABORT; 64 return NGX_ABORT;
64 } 65 }
65 66
66 if (wev->active) { 67 if (wev->active) {
67 ngx_add_timer(wev, p->send_timeout); 68 ngx_add_timer(wev, p->send_timeout);