summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_router.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2018-04-03 16:28:26 +0300
committerIgor Sysoev <igor@sysoev.ru>2018-04-03 16:28:26 +0300
commitfa04c05aa0e67e6964ab006935f939c6b27754a3 (patch)
tree969d3dac0bda996a487dc6e58e3b1e2ef7f91946 /src/nxt_router.c
parent151160c1103166810daddf1e9cc7135cb6ccc321 (diff)
downloadunit-fa04c05aa0e67e6964ab006935f939c6b27754a3.tar.gz
unit-fa04c05aa0e67e6964ab006935f939c6b27754a3.tar.bz2
HTTP: using r->mem_pool retention counter for response buffers.
Diffstat (limited to 'src/nxt_router.c')
-rw-r--r--src/nxt_router.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/nxt_router.c b/src/nxt_router.c
index 57e3cff1..994ba4af 100644
--- a/src/nxt_router.c
+++ b/src/nxt_router.c
@@ -2636,7 +2636,7 @@ nxt_router_response_ready_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg,
{
size_t dump_size;
nxt_int_t ret;
- nxt_buf_t *b, *last;
+ nxt_buf_t *b;
nxt_http_request_t *r;
nxt_req_conn_link_t *rc;
nxt_app_parse_ctx_t *ar;
@@ -2663,17 +2663,16 @@ nxt_router_response_ready_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg,
return;
}
+ if (ar->request->error) {
+ nxt_app_http_req_done(task, ar);
+ nxt_router_rc_unlink(task, rc);
+ return;
+ }
+
if (msg->port_msg.last != 0) {
nxt_debug(task, "router data create last buf");
- last = nxt_http_request_last_buffer(task, ar->request);
- if (nxt_slow_path(last == NULL)) {
- nxt_app_http_req_done(task, ar);
- nxt_router_rc_unlink(task, rc);
- return;
- }
-
- nxt_buf_chain_add(&b, last);
+ nxt_buf_chain_add(&b, nxt_http_buf_last(ar->request));
nxt_router_rc_unlink(task, rc);