/* 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);
}
}
- 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;
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);
}
}
+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);
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);
}
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);
}
}
}
-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],
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],
return NGX_CONF_ERROR;
}
}
-ngx_log_debug(cf->pool->log, "server merge done");
}
}
conf->buffer_output = NGX_CONF_UNSET;
-ngx_log_debug(pool->log, "write conf %08X %08X" _ conf _ conf->buffer_output);
-
return conf;
}
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;
}