nxt_router.c (1264:30b289d97479) nxt_router.c (1269:41331471eee7)
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) Valentin V. Bartenev
5 * Copyright (C) NGINX, Inc.
6 */
7
8#include <nxt_router.h>

--- 523 unchanged lines hidden (view full) ---

532 stream);
533
534 if (cancelled) {
535 nxt_debug(task, "stream #%uD: cancelled by router", stream);
536 }
537
538 for (b = msg_info->buf; b != NULL; b = next) {
539 next = b->next;
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) Valentin V. Bartenev
5 * Copyright (C) NGINX, Inc.
6 */
7
8#include <nxt_router.h>

--- 523 unchanged lines hidden (view full) ---

532 stream);
533
534 if (cancelled) {
535 nxt_debug(task, "stream #%uD: cancelled by router", stream);
536 }
537
538 for (b = msg_info->buf; b != NULL; b = next) {
539 next = b->next;
540 b->next = NULL;
540
541 b->completion_handler = msg_info->completion_handler;
542
543 if (b->is_port_mmap_sent) {
544 b->is_port_mmap_sent = cancelled == 0;
545 b->completion_handler(task, b, b->parent);
546 }
547 }

--- 2945 unchanged lines hidden (view full) ---

3493}
3494
3495
3496static void
3497nxt_router_response_ready_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg,
3498 void *data)
3499{
3500 nxt_int_t ret;
541
542 b->completion_handler = msg_info->completion_handler;
543
544 if (b->is_port_mmap_sent) {
545 b->is_port_mmap_sent = cancelled == 0;
546 b->completion_handler(task, b, b->parent);
547 }
548 }

--- 2945 unchanged lines hidden (view full) ---

3494}
3495
3496
3497static void
3498nxt_router_response_ready_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg,
3499 void *data)
3500{
3501 nxt_int_t ret;
3501 nxt_buf_t *b;
3502 nxt_buf_t *b, *next;
3502 nxt_port_t *app_port;
3503 nxt_unit_field_t *f;
3504 nxt_http_field_t *field;
3505 nxt_http_request_t *r;
3506 nxt_unit_response_t *resp;
3507 nxt_request_app_link_t *req_app_link;
3508 nxt_request_rpc_data_t *req_rpc_data;
3509

--- 98 unchanged lines hidden (view full) ---

3608 b->mem.pos = nxt_unit_sptr_get(&resp->piggyback_content);
3609 b->mem.free = b->mem.pos + resp->piggyback_content_length;
3610
3611 } else {
3612 b->mem.pos = b->mem.free;
3613 }
3614
3615 if (nxt_buf_mem_used_size(&b->mem) == 0) {
3503 nxt_port_t *app_port;
3504 nxt_unit_field_t *f;
3505 nxt_http_field_t *field;
3506 nxt_http_request_t *r;
3507 nxt_unit_response_t *resp;
3508 nxt_request_app_link_t *req_app_link;
3509 nxt_request_rpc_data_t *req_rpc_data;
3510

--- 98 unchanged lines hidden (view full) ---

3609 b->mem.pos = nxt_unit_sptr_get(&resp->piggyback_content);
3610 b->mem.free = b->mem.pos + resp->piggyback_content_length;
3611
3612 } else {
3613 b->mem.pos = b->mem.free;
3614 }
3615
3616 if (nxt_buf_mem_used_size(&b->mem) == 0) {
3617 next = b->next;
3618 b->next = NULL;
3619
3616 nxt_work_queue_add(&task->thread->engine->fast_work_queue,
3617 b->completion_handler, task, b, b->parent);
3618
3620 nxt_work_queue_add(&task->thread->engine->fast_work_queue,
3621 b->completion_handler, task, b, b->parent);
3622
3619 b = b->next;
3623 b = next;
3620 }
3621
3622 if (b != NULL) {
3623 nxt_buf_chain_add(&r->out, b);
3624 }
3625
3626 nxt_http_request_header_send(task, r, nxt_http_request_send_body);
3627

--- 1424 unchanged lines hidden (view full) ---

5052 while (size > 0) {
5053 if (buf == NULL) {
5054 free_size = nxt_min(size, PORT_MMAP_DATA_SIZE);
5055
5056 buf = nxt_port_mmap_get_buf(task, port, free_size);
5057 if (nxt_slow_path(buf == NULL)) {
5058 while (out != NULL) {
5059 buf = out->next;
3624 }
3625
3626 if (b != NULL) {
3627 nxt_buf_chain_add(&r->out, b);
3628 }
3629
3630 nxt_http_request_header_send(task, r, nxt_http_request_send_body);
3631

--- 1424 unchanged lines hidden (view full) ---

5056 while (size > 0) {
5057 if (buf == NULL) {
5058 free_size = nxt_min(size, PORT_MMAP_DATA_SIZE);
5059
5060 buf = nxt_port_mmap_get_buf(task, port, free_size);
5061 if (nxt_slow_path(buf == NULL)) {
5062 while (out != NULL) {
5063 buf = out->next;
5064 out->next = NULL;
5060 out->completion_handler(task, out, out->parent);
5061 out = buf;
5062 }
5063 return NULL;
5064 }
5065
5066 *tail = buf;
5067 tail = &buf->next;

--- 150 unchanged lines hidden ---
5065 out->completion_handler(task, out, out->parent);
5066 out = buf;
5067 }
5068 return NULL;
5069 }
5070
5071 *tail = buf;
5072 tail = &buf->next;

--- 150 unchanged lines hidden ---