Lines Matching refs:downstream

283     auto downstream = dc->get_downstream();
284 auto upstream = downstream->get_upstream();
288 if (upstream->on_downstream_reset(downstream, hard) != 0) {
387 auto &downstreamconf = *get_config()->conn.downstream;
451 SSLOG(INFO, this) << "Connecting to downstream server";
734 SSLOG(INFO, this) << "Remove downstream";
798 auto downstream = dconn->get_downstream();
800 downstream->get_downstream_stream_id());
814 Downstream *downstream) {
815 auto upstream = downstream->get_upstream();
819 if (upstream->downstream_read(downstream->get_downstream_connection()) != 0) {
843 auto downstream = dconn->get_downstream();
844 auto upstream = downstream->get_upstream();
846 if (downstream->get_downstream_stream_id() % 2 == 0 &&
847 downstream->get_request_state() == DownstreamState::INITIAL) {
852 downstream->set_response_state(DownstreamState::MSG_RESET);
853 upstream->cancel_premature_downstream(downstream);
855 if (downstream->get_upgraded() && downstream->get_response_state() ==
860 downstream->get_upstream()->on_downstream_body_complete(downstream);
861 downstream->set_response_state(DownstreamState::MSG_COMPLETE);
863 switch (downstream->get_response_state()) {
868 downstream->set_response_state(DownstreamState::MSG_RESET);
870 } else if (downstream->get_response_state() !=
872 downstream->set_response_state(DownstreamState::MSG_RESET);
874 if (downstream->get_response_state() == DownstreamState::MSG_RESET &&
875 downstream->get_response_rst_stream_error_code() ==
877 downstream->set_response_rst_stream_error_code(error_code);
879 call_downstream_readcb(http2session, downstream);
890 auto &downstreamconf = get_config()->http2.downstream;
910 auto downstream = sd->dconn->get_downstream();
915 auto &resp = downstream->response();
921 !downstream->get_expect_final_response();
927 DLOG(INFO, downstream)
945 downstream->add_rcbuf(name);
946 downstream->add_rcbuf(value);
984 DLOG(INFO, downstream)
1075 auto downstream = sd->dconn->get_downstream();
1077 assert(downstream);
1078 assert(downstream->get_downstream_stream_id() == frame->hd.stream_id);
1080 if (http2session->handle_downstream_push_promise(downstream,
1095 int on_response_headers(Http2Session *http2session, Downstream *downstream,
1099 auto upstream = downstream->get_upstream();
1101 const auto &req = downstream->request();
1102 auto &resp = downstream->response();
1109 downstream->set_expect_final_response(false);
1120 downstream->set_downstream_addr_group(
1122 downstream->set_addr(http2session->get_addr());
1134 if (downstream->get_non_final_response()) {
1140 downstream->set_expect_final_response(true);
1141 rv = upstream->on_downstream_header_complete(downstream);
1148 downstream->set_response_state(DownstreamState::MSG_RESET);
1154 downstream->set_response_state(DownstreamState::HEADER_COMPLETE);
1155 downstream->check_upgrade_fulfilled_http2();
1157 if (downstream->get_upgraded()) {
1160 if (upstream->resume_read(SHRPX_NO_BUFFER, downstream, 0) != 0) {
1165 downstream->set_request_state(DownstreamState::HEADER_COMPLETE);
1177 if (resp.fs.content_length == -1 && downstream->expect_response_body()) {
1190 downstream->set_chunked_response(true);
1199 if (loggingconf.access.write_early && downstream->accesslog_ready()) {
1200 handler->write_accesslog(downstream);
1201 downstream->set_accesslog_written(true);
1204 rv = upstream->on_downstream_header_complete(downstream);
1208 if (downstream->get_response_state() == DownstreamState::MSG_COMPLETE) {
1213 downstream->set_response_state(DownstreamState::MSG_RESET);
1234 auto downstream = sd->dconn->get_downstream();
1235 auto upstream = downstream->get_upstream();
1236 rv = upstream->on_downstream_body(downstream, nullptr, 0, true);
1240 downstream->set_response_state(DownstreamState::MSG_RESET);
1244 downstream->disable_downstream_rtimer();
1246 if (downstream->get_response_state() ==
1249 downstream->set_response_state(DownstreamState::MSG_COMPLETE);
1251 rv = upstream->on_downstream_body_complete(downstream);
1254 downstream->set_response_state(DownstreamState::MSG_RESET);
1259 call_downstream_readcb(http2session, downstream);
1268 auto downstream = sd->dconn->get_downstream();
1272 rv = on_response_headers(http2session, downstream, session, frame);
1278 if (downstream->get_expect_final_response()) {
1279 rv = on_response_headers(http2session, downstream, session, frame);
1288 downstream->disable_downstream_rtimer();
1290 if (downstream->get_response_state() ==
1292 downstream->set_response_state(DownstreamState::MSG_COMPLETE);
1294 auto upstream = downstream->get_upstream();
1296 rv = upstream->on_downstream_body_complete(downstream);
1299 downstream->set_response_state(DownstreamState::MSG_RESET);
1303 downstream->reset_downstream_rtimer();
1306 // This may delete downstream
1307 call_downstream_readcb(http2session, downstream);
1315 auto downstream = sd->dconn->get_downstream();
1316 downstream->set_response_rst_stream_error_code(
1318 call_downstream_readcb(http2session, downstream);
1350 << "Received downstream PUSH_PROMISE stream_id="
1362 auto downstream = sd->dconn->get_downstream();
1364 assert(downstream);
1365 assert(downstream->get_downstream_stream_id() == frame->hd.stream_id);
1379 downstream, promised_downstream) != 0) {
1420 auto downstream = sd->dconn->get_downstream();
1421 if (!downstream->expect_response_body()) {
1433 if (downstream->get_non_final_response()) {
1443 downstream->reset_downstream_rtimer();
1445 auto &resp = downstream->response();
1450 auto upstream = downstream->get_upstream();
1451 rv = upstream->on_downstream_body(downstream, data, len, false);
1459 downstream->set_response_state(DownstreamState::MSG_RESET);
1462 call_downstream_readcb(http2session, downstream);
1480 auto downstream = sd->dconn->get_downstream();
1484 downstream->set_request_header_sent(true);
1485 auto src = downstream->get_blocked_request_buf();
1487 auto dest = downstream->get_request_buf();
1492 downstream->ensure_downstream_wtimer();
1500 downstream->reset_downstream_rtimer();
1538 auto downstream = sd->dconn->get_downstream();
1541 // Migrate to another downstream connection.
1542 auto upstream = downstream->get_upstream();
1544 if (upstream->on_downstream_reset(downstream, false)) {
1554 downstream->set_response_state(DownstreamState::MSG_RESET);
1555 call_downstream_readcb(http2session, downstream);
1578 auto downstream = dconn->get_downstream();
1579 auto input = downstream->get_request_buf();
1595 downstream->disable_downstream_wtimer();
1597 downstream->reset_downstream_wtimer();
1603 if (downstream->get_upstream()->resume_read(SHRPX_NO_BUFFER, downstream,
1605 // In this case, downstream may be deleted.
1610 // Upstream::resume_read() may delete downstream which will delete
1702 rv = nghttp2_session_client_new2(&session_, http2conf.downstream.callbacks,
1703 this, http2conf.downstream.option);
1712 entry[0].value = http2conf.downstream.max_concurrent_streams;
1715 entry[1].value = http2conf.downstream.window_size;
1726 if (http2conf.downstream.decoder_dynamic_table_size !=
1729 entry[nentry].value = http2conf.downstream.decoder_dynamic_table_size;
1741 http2conf.downstream.connection_window_size);
1877 bool Http2Session::can_push_request(const Downstream *downstream) const {
1878 auto &req = downstream->request();
1933 auto downstream = dconn->get_downstream();
1935 if (!downstream->get_request_pending() ||
1936 !downstream->request_submission_ready()) {
1940 auto &req = downstream->request();
1945 auto upstream = downstream->get_upstream();
1952 upstream->on_downstream_abort_request(downstream, 400);
1957 upstream->resume_read(SHRPX_NO_BUFFER, downstream, 0);
2216 int Http2Session::handle_downstream_push_promise(Downstream *downstream,
2218 auto upstream = downstream->get_upstream();
2224 upstream->on_downstream_push_promise(downstream, promised_stream_id);
2256 Downstream *downstream, Downstream *promised_downstream) {
2304 if (upstream->on_downstream_push_promise_complete(downstream,