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

@@ -141,6 +141,8 @@ struct nxt_conn_s {
nxt_conn_io_t *io;
nxt_queue_t requests; /* of nxt_req_conn_link_t */
#if (NXT_SSLTLS || NXT_THREADS)
/* SunC does not support "zero-sized struct/union". */
@@ -180,6 +182,16 @@ struct nxt_conn_s {
};
typedef uint32_t nxt_req_id_t;
typedef struct {
nxt_req_id_t req_id;
nxt_conn_t *conn;
nxt_queue_link_t link;
} nxt_req_conn_link_t;
#define nxt_conn_timer_init(ev, c, wq) \
do { \
(ev)->work_queue = (wq); \
@@ -347,4 +359,10 @@ NXT_EXPORT void nxt_conn_proxy(nxt_task_t *task, nxt_conn_proxy_t *p);
#define nxt_event_conn_close nxt_conn_close
NXT_EXPORT nxt_req_conn_link_t *nxt_conn_request_add(nxt_conn_t *c,
nxt_req_id_t req_id);
NXT_EXPORT void nxt_conn_request_remove(nxt_conn_t *c,
nxt_req_conn_link_t *rc);
#endif /* _NXT_CONN_H_INCLUDED_ */