Removed unnecessary abstraction layer.

This commit is contained in:
Alexander Borisov
2019-03-06 15:26:45 +03:00
parent e1c4568680
commit dccb4cf354
6 changed files with 126 additions and 259 deletions

View File

@@ -322,31 +322,17 @@ nxt_http_pass_t *
nxt_http_request_application(nxt_task_t *task, nxt_http_request_t *r,
nxt_http_pass_t *pass)
{
nxt_int_t ret;
nxt_event_engine_t *engine;
nxt_app_parse_ctx_t *ar;
nxt_event_engine_t *engine;
nxt_debug(task, "http request application");
ar = nxt_mp_zget(r->mem_pool, sizeof(nxt_app_parse_ctx_t));
if (nxt_slow_path(ar == NULL)) {
nxt_http_request_error(task, r, NXT_HTTP_INTERNAL_SERVER_ERROR);
return NULL;
}
ar->request = r;
ar->mem_pool = r->mem_pool;
nxt_mp_retain(r->mem_pool);
// STUB
engine = task->thread->engine;
ar->timer.task = &engine->task;
ar->timer.work_queue = &engine->fast_work_queue;
ar->timer.log = engine->task.log;
ar->timer.bias = NXT_TIMER_DEFAULT_BIAS;
ar->r.remote.start = nxt_sockaddr_address(r->remote);
ar->r.remote.length = r->remote->address_length;
r->timer.task = &engine->task;
r->timer.work_queue = &engine->fast_work_queue;
r->timer.log = engine->task.log;
r->timer.bias = NXT_TIMER_DEFAULT_BIAS;
/*
* TODO: need an application flag to get local address
@@ -354,66 +340,14 @@ nxt_http_request_application(nxt_task_t *task, nxt_http_request_t *r,
*/
nxt_http_request_local_addr(task, r);
if (nxt_fast_path(r->local != NULL)) {
ar->r.local.start = nxt_sockaddr_address(r->local);
ar->r.local.length = r->local->address_length;
}
ar->r.header.fields = r->fields;
ar->r.header.done = 1;
ar->r.header.version = r->version;
if (r->method != NULL) {
ar->r.header.method = *r->method;
}
if (r->host.length != 0) {
ar->r.header.server_name = r->host;
r->server_name = r->host;
} else {
nxt_str_set(&ar->r.header.server_name, "localhost");
nxt_str_set(&r->server_name, "localhost");
}
ar->r.header.target = r->target;
if (r->path != NULL) {
ar->r.header.path = *r->path;
}
if (r->args != NULL) {
ar->r.header.query = *r->args;
}
if (r->content_type != NULL) {
ar->r.header.content_type.length = r->content_type->value_length;
ar->r.header.content_type.start = r->content_type->value;
}
if (r->content_length != NULL) {
ar->r.header.content_length.length = r->content_length->value_length;
ar->r.header.content_length.start = r->content_length->value;
}
if (r->cookie != NULL) {
ar->r.header.cookie.length = r->cookie->value_length;
ar->r.header.cookie.start = r->cookie->value;
}
if (r->body != NULL) {
ar->r.body.buf = r->body;
ar->r.body.preread_size = r->content_length_n;
ar->r.header.parsed_content_length = r->content_length_n;
}
ar->r.body.done = 1;
ret = nxt_http_parse_request_init(&ar->resp_parser, r->mem_pool);
if (nxt_slow_path(ret != NXT_OK)) {
nxt_http_request_error(task, r, NXT_HTTP_INTERNAL_SERVER_ERROR);
return NULL;
}
nxt_router_process_http_request(task, ar, pass->u.application);
nxt_router_process_http_request(task, r, pass->u.application);
return NULL;
}