summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_router_request.h
diff options
context:
space:
mode:
authorMax Romanov <max.romanov@nginx.com>2020-08-11 19:20:15 +0300
committerMax Romanov <max.romanov@nginx.com>2020-08-11 19:20:15 +0300
commit83595606121a821f9e3cef0f0b7e7fe87eb1e50a (patch)
tree2374867dd2f69654a71e95b7abec3fdad13ffd1a /src/nxt_router_request.h
parent6e31d6cd39be9d3f4ee680fc13c3fe42f5cd39e7 (diff)
downloadunit-83595606121a821f9e3cef0f0b7e7fe87eb1e50a.tar.gz
unit-83595606121a821f9e3cef0f0b7e7fe87eb1e50a.tar.bz2
Introducing the shared application port.
This is the port shared between all application processes which use it to pass requests for processing. Using it significantly simplifies the request processing code in the router. The drawback is 2 more file descriptors per each configured application and more complex libunit message wait/read code.
Diffstat (limited to 'src/nxt_router_request.h')
-rw-r--r--src/nxt_router_request.h37
1 files changed, 3 insertions, 34 deletions
diff --git a/src/nxt_router_request.h b/src/nxt_router_request.h
index a38980ee..1271520d 100644
--- a/src/nxt_router_request.h
+++ b/src/nxt_router_request.h
@@ -9,14 +9,12 @@
typedef struct nxt_msg_info_s {
nxt_buf_t *buf;
+ nxt_fd_t body_fd;
nxt_port_mmap_tracking_t tracking;
nxt_work_handler_t completion_handler;
} nxt_msg_info_t;
-typedef struct nxt_request_app_link_s nxt_request_app_link_t;
-
-
typedef enum {
NXT_APR_NEW_PORT,
NXT_APR_REQUEST_FAILED,
@@ -35,38 +33,9 @@ typedef struct {
nxt_http_request_t *request;
nxt_msg_info_t msg_info;
- nxt_request_app_link_t *req_app_link;
-} nxt_request_rpc_data_t;
-
-
-struct nxt_request_app_link_s {
- uint32_t stream;
- nxt_atomic_t use_count;
-
- nxt_port_t *app_port;
- nxt_apr_action_t apr_action;
-
- nxt_port_t *reply_port;
- nxt_http_request_t *request;
- nxt_msg_info_t msg_info;
- nxt_request_rpc_data_t *req_rpc_data;
- nxt_fd_t body_fd;
- nxt_nsec_t res_time;
-
- nxt_queue_link_t link_app_requests; /* for nxt_app_t.requests */
- /* for nxt_port_t.pending_requests */
- nxt_queue_link_t link_port_pending;
- nxt_queue_link_t link_app_pending; /* for nxt_app_t.pending */
- /* for nxt_port_t.active_websockets */
- nxt_queue_link_t link_port_websockets;
-
- nxt_mp_t *mem_pool;
- nxt_work_t work;
-
- int err_code;
- const char *err_str;
-};
+ nxt_bool_t rpc_cancel;
+} nxt_request_rpc_data_t;
#endif /* _NXT_ROUTER_REQUEST_H_INCLUDED_ */