Mercurial > hg > nginx
diff src/http/modules/proxy/ngx_http_proxy_handler.c @ 140:e32405df0e77
nginx-0.0.1-2003-10-08-08:34:07 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 08 Oct 2003 04:34:07 +0000 |
parents | 54307053f185 |
children | 656d468f4ead |
line wrap: on
line diff
--- a/src/http/modules/proxy/ngx_http_proxy_handler.c +++ b/src/http/modules/proxy/ngx_http_proxy_handler.c @@ -779,12 +779,25 @@ static void ngx_http_proxy_process_upstr ngx_log_debug(rev->log, "http proxy process upstream body"); if (rev->timedout) { - ngx_http_proxy_next_upstream(p); + ngx_http_proxy_close_connection(p->upstream.connection); + p->upstream.connection = NULL; return; } ngx_event_proxy_read_upstream(p->event_proxy); + if (p->event_proxy->upstream_eof) { + ngx_http_proxy_close_connection(p->upstream.connection); + p->upstream.connection = NULL; + return; + } + + if (p->event_proxy->upstream_error) { + ngx_http_proxy_close_connection(p->upstream.connection); + p->upstream.connection = NULL; + return; + } + return; } @@ -1043,6 +1056,8 @@ static void ngx_http_proxy_close_connect c->write->timer_set = 0; } + /* TODO: move connection to the connection pool */ + if (ngx_del_conn) { ngx_del_conn(c);