aboutsummaryrefslogtreecommitdiff
path: root/src/http/modules/proxy/ngx_http_event_proxy_handler.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2003-04-23 14:34:42 +0000
committerIgor Sysoev <igor@sysoev.ru>2003-04-23 14:34:42 +0000
commitfb970519d45f7fb299dfaba854b8cc58d4dc4711 (patch)
tree8ca0d5b5603deda8ace5fdab442473bf173d4255 /src/http/modules/proxy/ngx_http_event_proxy_handler.c
parent8dcd23e83724a4547133a16560af9c365d59293c (diff)
downloadnginx-fb970519d45f7fb299dfaba854b8cc58d4dc4711.tar.gz
nginx-fb970519d45f7fb299dfaba854b8cc58d4dc4711.zip
nginx-0.0.1-2003-04-23-18:34:42 import
Diffstat (limited to 'src/http/modules/proxy/ngx_http_event_proxy_handler.c')
-rw-r--r--src/http/modules/proxy/ngx_http_event_proxy_handler.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/http/modules/proxy/ngx_http_event_proxy_handler.c b/src/http/modules/proxy/ngx_http_event_proxy_handler.c
index 26277b48d..ab90aeb3a 100644
--- a/src/http/modules/proxy/ngx_http_event_proxy_handler.c
+++ b/src/http/modules/proxy/ngx_http_event_proxy_handler.c
@@ -371,8 +371,7 @@ static int ngx_http_proxy_process_upstream(ngx_http_proxy_ctx_t *p,
return NGX_DONE;
}
- if (p->tries /* STUB !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
-
+ if (p->tries > 1
&& (rc == NGX_HTTP_BAD_GATEWAY
|| rc == NGX_HTTP_GATEWAY_TIME_OUT
|| (rc == NGX_OK
@@ -1083,7 +1082,12 @@ static int ngx_http_proxy_read_upstream_body(ngx_http_proxy_ctx_t *p)
int rc;
rc = ngx_event_proxy_read_upstream(p->event_proxy);
- if (rc == NGX_OK) {
+
+ if (p->event_proxy->fatal_error) {
+ return NGX_HTTP_INTERNAL_SERVER_ERROR;
+ }
+
+ if (p->event_proxy->upstream_eof && p->event_proxy->upstream_error) {
rc = ngx_event_close_connection(p->connection->read);
}