Added basic HTTP request processing in router.

- request to connection mapping in engine;
- requests queue in connection;
- engine port creation;
- connected ports hash for each process;
- engine port data messages processing (app responses);
This commit is contained in:
Max Romanov
2017-06-23 19:20:08 +03:00
parent 4a1b59c27a
commit b8f126dcdf
9 changed files with 565 additions and 35 deletions

View File

@@ -491,6 +491,7 @@ struct nxt_event_engine_s {
nxt_queue_t joints;
nxt_queue_t listen_connections;
nxt_queue_t idle_connections;
nxt_lvlhsh_t requests; /* req_id to nxt_req_conn_link_t */
nxt_queue_link_t link;
};
@@ -509,6 +510,15 @@ NXT_EXPORT void nxt_event_engine_post(nxt_event_engine_t *engine,
NXT_EXPORT void nxt_event_engine_signal(nxt_event_engine_t *engine,
nxt_uint_t signo);
NXT_EXPORT void nxt_event_engine_request_add(nxt_event_engine_t *engine,
nxt_req_conn_link_t *rc);
NXT_EXPORT nxt_req_conn_link_t *nxt_event_engine_request_find(
nxt_event_engine_t *engine, nxt_req_id_t req_id);
NXT_EXPORT void nxt_event_engine_request_remove(nxt_event_engine_t *engine,
nxt_req_conn_link_t *rc);
NXT_EXPORT nxt_req_conn_link_t *nxt_event_engine_request_find_remove(
nxt_event_engine_t *engine, nxt_req_id_t req_id);
nxt_inline nxt_event_engine_t *
nxt_thread_event_engine(void)