nginx-0.0.1-2003-04-24-18:46:08 import
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 ab90aeb..66c9988 100644 --- a/src/http/modules/proxy/ngx_http_event_proxy_handler.c +++ b/src/http/modules/proxy/ngx_http_event_proxy_handler.c
@@ -18,9 +18,10 @@ /* STUB */ typedef struct { - int dummy; + int type; } ngx_cache_header_t; + static int ngx_http_proxy_handler(ngx_http_request_t *r); static ngx_chain_t *ngx_http_proxy_create_request(ngx_http_proxy_ctx_t *p); @@ -609,8 +610,8 @@ } } - wev->event_handler = rev->event_handler = - ngx_http_proxy_process_upstream_event; + rev->event_handler = ngx_http_proxy_process_upstream_event; + p->request->connection->write->event_handler = NULL; p->state_write_upstream_handler = ngx_http_proxy_send_request; p->state_read_upstream_handler = ngx_http_proxy_init_upstream; @@ -1087,7 +1088,7 @@ return NGX_HTTP_INTERNAL_SERVER_ERROR; } - if (p->event_proxy->upstream_eof && p->event_proxy->upstream_error) { + if (p->event_proxy->upstream_eof || p->event_proxy->upstream_error) { rc = ngx_event_close_connection(p->connection->read); } @@ -1095,6 +1096,21 @@ } +static int ngx_http_proxy_process_client_event(ngx_event_t *ev) +{ + ngx_connection_t *c; + ngx_http_request_t *r; + ngx_http_proxy_ctx_t *p; + + c = (ngx_connection_t *) ev->data; + r = (ngx_http_request_t *) c->data; + p = (ngx_http_proxy_ctx_t *) + ngx_http_get_module_ctx(r, ngx_http_proxy_module_ctx); + + return ngx_http_proxy_process_upstream(p, ev); +} + + static int ngx_http_proxy_write_upstream_body(ngx_http_proxy_ctx_t *p) { return ngx_event_proxy_write_to_downstream(p->event_proxy); @@ -1105,6 +1121,23 @@ static int ngx_http_proxy_finalize_request(ngx_http_proxy_ctx_t *p, int error) { +#if 0 + + if (p->event_proxy->upstream_eof) { + rc = ngx_event_close_connection(p->connection->read); + link cache; + } + + if (p->event_proxy->upstream_error) { + rc = ngx_event_close_connection(p->connection->read); + } + + if (p->event_proxy->downstream_error) { + rc = ngx_event_close_connection(p->request->connection->write); + } + +#endif + return ngx_http_finalize_request(p->request, error); }
diff --git a/src/http/ngx_http.c b/src/http/ngx_http.c index 163cf9b..7128e20 100644 --- a/src/http/ngx_http.c +++ b/src/http/ngx_http.c
@@ -107,7 +107,7 @@ module = (ngx_http_module_t *) ngx_modules[i]->ctx; if (module->create_loc_conf) { - ngx_test_null(ctx->loc_conf[ngx_modules[i]->index], + ngx_test_null(ctx->loc_conf[module->index], module->create_loc_conf(cf->pool), NGX_CONF_ERROR); }
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c index 3ae8017..9eab6ad 100644 --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c
@@ -674,8 +674,6 @@ } } -ngx_log_debug(cf->pool->log, "main merge"); - if (module->merge_loc_conf) { if (module->merge_loc_conf(cf->pool, prev->loc_conf[module->index], @@ -684,8 +682,6 @@ return NGX_CONF_ERROR; } -ngx_log_debug(cf->pool->log, "server merge"); - for (j = 0; j < scf->locations.nelts; j++) { if (module->merge_loc_conf(cf->pool, ctx->loc_conf[module->index], @@ -694,7 +690,6 @@ return NGX_CONF_ERROR; } } -ngx_log_debug(cf->pool->log, "server merge done"); } }
diff --git a/src/http/ngx_http_write_filter.c b/src/http/ngx_http_write_filter.c index 8a7f6a4..4d7b958 100644 --- a/src/http/ngx_http_write_filter.c +++ b/src/http/ngx_http_write_filter.c
@@ -169,8 +169,6 @@ conf->buffer_output = NGX_CONF_UNSET; -ngx_log_debug(pool->log, "write conf %08X %08X" _ conf _ conf->buffer_output); - return conf; } @@ -185,8 +183,6 @@ ngx_conf_size_merge(conf->buffer_output, prev->buffer_output, 1460); -ngx_log_debug(pool->log, "write merge %08X %08X %08X" _ prev _ conf _ conf->buffer_output); - return NULL; }