• Home
  • Raw
  • Download

Lines Matching full:downstream

113   auto downstream =  in on_start_request()  local
114 std::make_unique<Downstream>(this, handler_->get_mcpool(), 0); in on_start_request()
116 attach_downstream(std::move(downstream)); in on_start_request()
136 auto downstream = upstream->get_downstream(); in htp_uricb() local
137 auto &req = downstream->request(); in htp_uricb()
139 auto &balloc = downstream->get_block_allocator(); in htp_uricb()
150 assert(downstream->get_request_state() == DownstreamState::INITIAL); in htp_uricb()
151 downstream->set_request_state( in htp_uricb()
173 auto downstream = upstream->get_downstream(); in htp_hdr_keycb() local
174 auto &req = downstream->request(); in htp_hdr_keycb()
182 if (downstream->get_request_state() == DownstreamState::INITIAL) { in htp_hdr_keycb()
183 downstream->set_request_state( in htp_hdr_keycb()
189 if (downstream->get_request_state() == DownstreamState::INITIAL) { in htp_hdr_keycb()
198 downstream->set_request_state( in htp_hdr_keycb()
228 auto downstream = upstream->get_downstream(); in htp_hdr_valcb() local
229 auto &req = downstream->request(); in htp_hdr_valcb()
237 if (downstream->get_request_state() == DownstreamState::INITIAL) { in htp_hdr_valcb()
238 downstream->set_request_state( in htp_hdr_valcb()
244 if (downstream->get_request_state() == DownstreamState::INITIAL) { in htp_hdr_valcb()
339 auto downstream = upstream->get_downstream(); in htp_hdrs_completecb() local
340 auto &req = downstream->request(); in htp_hdrs_completecb()
341 auto &balloc = downstream->get_block_allocator(); in htp_hdrs_completecb()
417 downstream->inspect_http1_request(); in htp_hdrs_completecb()
420 downstream->set_chunked_request(true); in htp_hdrs_completecb()
463 downstream->set_request_state(DownstreamState::HEADER_COMPLETE); in htp_hdrs_completecb()
465 auto &resp = downstream->response(); in htp_hdrs_completecb()
477 if (mruby_ctx->run_on_request_proc(downstream) != 0) { in htp_hdrs_completecb()
491 if (downstream->get_response_state() == DownstreamState::MSG_COMPLETE) { in htp_hdrs_completecb()
500 auto dconn = handler->get_downstream_connection(rv, downstream); in htp_hdrs_completecb()
504 upstream->redirect_to_https(downstream); in htp_hdrs_completecb()
506 downstream->set_request_state(DownstreamState::CONNECT_FAIL); in htp_hdrs_completecb()
513 if (downstream->attach_downstream_connection(std::move(dconn)) == 0) { in htp_hdrs_completecb()
523 if (dmruby_ctx->run_on_request_proc(downstream) != 0) { in htp_hdrs_completecb()
528 if (downstream->get_response_state() == DownstreamState::MSG_COMPLETE) { in htp_hdrs_completecb()
534 rv = downstream->push_request_headers(); in htp_hdrs_completecb()
545 if (downstream->get_expect_100_continue()) { in htp_hdrs_completecb()
546 auto output = downstream->get_response_buf(); in htp_hdrs_completecb()
561 auto downstream = upstream->get_downstream(); in htp_bodycb() local
562 rv = downstream->push_upload_data_chunk( in htp_bodycb()
567 if (downstream->get_response_state() == DownstreamState::MSG_COMPLETE) { in htp_bodycb()
586 auto downstream = upstream->get_downstream(); in htp_msg_completecb() local
587 auto &req = downstream->request(); in htp_msg_completecb()
588 auto &balloc = downstream->get_block_allocator(); in htp_msg_completecb()
594 downstream->set_request_state(DownstreamState::MSG_COMPLETE); in htp_msg_completecb()
595 rv = downstream->end_upload_data(); in htp_msg_completecb()
597 if (downstream->get_response_state() == DownstreamState::MSG_COMPLETE) { in htp_msg_completecb()
610 downstream->get_http2_upgrade_request() && in htp_msg_completecb()
627 auto downstream = get_downstream(); in on_read() local
633 // downstream can be nullptr here, because it is initialized in the in on_read()
635 if (downstream && downstream->get_upgraded()) { in on_read()
637 auto rv = downstream->push_upload_data_chunk(rb->pos(), rb->rleft()); in on_read()
646 if (downstream->request_buf_full()) { in on_read()
648 ULOG(INFO, this) << "Downstream request buf is full"; in on_read()
658 if (downstream) { in on_read()
660 switch (downstream->get_request_state()) { in on_read()
693 // Get downstream again because it may be initialized in http parser in on_read()
695 downstream = get_downstream(); in on_read()
700 if (downstream && in on_read()
701 downstream->get_request_state() == DownstreamState::MSG_COMPLETE && in on_read()
702 downstream->get_response_state() == DownstreamState::MSG_COMPLETE) { in on_read()
715 if (downstream && in on_read()
716 downstream->get_response_state() != DownstreamState::INITIAL) { in on_read()
726 } else if (downstream) { in on_read()
727 status_code = downstream->response().http_status; in on_read()
729 if (downstream->get_request_state() == DownstreamState::CONNECT_FAIL) { in on_read()
731 } else if (downstream->get_request_state() == in on_read()
749 // downstream can be NULL here. in on_read()
750 if (downstream && downstream->request_buf_full()) { in on_read()
752 ULOG(INFO, this) << "Downstream request buffer is full"; in on_read()
764 auto downstream = get_downstream(); in on_write() local
765 if (!downstream) { in on_write()
769 auto output = downstream->get_response_buf(); in on_write()
770 const auto &resp = downstream->response(); in on_write()
778 if (downstream->get_response_state() == DownstreamState::MSG_COMPLETE) { in on_write()
779 if (downstream->can_detach_downstream_connection()) { in on_write()
781 downstream->detach_downstream_connection(); in on_write()
784 downstream->pop_downstream_connection(); in on_write()
788 if (downstream->get_request_state() == DownstreamState::MSG_COMPLETE) { in on_write()
810 return downstream->resume_read(SHRPX_NO_BUFFER, resp.unconsumed_body_length); in on_write()
821 int HttpsUpstream::resume_read(IOCtrlReason reason, Downstream *downstream, in resume_read() argument
823 // downstream could be nullptr in resume_read()
824 if (downstream && downstream->request_buf_full()) { in resume_read()
841 auto downstream = dconn->get_downstream(); in downstream_read() local
844 rv = downstream->on_read(); in downstream_read()
847 if (downstream->get_request_header_sent()) { in downstream_read()
854 downstream->pop_downstream_connection(); in downstream_read()
859 return downstream_error(dconn, Downstream::EVENT_ERROR); in downstream_read()
862 if (downstream->get_response_state() == DownstreamState::MSG_RESET) { in downstream_read()
866 if (downstream->get_response_state() == DownstreamState::MSG_BAD_HEADER) { in downstream_read()
868 downstream->pop_downstream_connection(); in downstream_read()
872 if (downstream->can_detach_downstream_connection()) { in downstream_read()
874 downstream->detach_downstream_connection(); in downstream_read()
887 return downstream_error(dconn, Downstream::EVENT_ERROR); in downstream_write()
898 auto downstream = dconn->get_downstream(); in downstream_eof() local
904 if (downstream->get_response_state() == DownstreamState::MSG_COMPLETE) { in downstream_eof()
908 if (downstream->get_response_state() == DownstreamState::HEADER_COMPLETE) { in downstream_eof()
914 on_downstream_body_complete(downstream); in downstream_eof()
915 downstream->set_response_state(DownstreamState::MSG_COMPLETE); in downstream_eof()
916 downstream->pop_downstream_connection(); in downstream_eof()
920 if (downstream->get_response_state() == DownstreamState::INITIAL) { in downstream_eof()
927 downstream->pop_downstream_connection(); in downstream_eof()
941 auto downstream = dconn->get_downstream(); in downstream_error() local
943 if (events & Downstream::EVENT_ERROR) { in downstream_error()
949 if (downstream->get_response_state() != DownstreamState::INITIAL) { in downstream_error()
954 if (events & Downstream::EVENT_TIMEOUT) { in downstream_error()
955 if (downstream->get_request_header_sent()) { in downstream_error()
965 downstream->pop_downstream_connection(); in downstream_error()
971 int HttpsUpstream::send_reply(Downstream *downstream, const uint8_t *body, in send_reply() argument
973 const auto &req = downstream->request(); in send_reply()
974 auto &resp = downstream->response(); in send_reply()
975 auto &balloc = downstream->get_block_allocator(); in send_reply()
1003 auto output = downstream->get_response_buf(); in send_reply()
1039 downstream->response_sent_body_length += bodylen; in send_reply()
1042 downstream->set_response_state(DownstreamState::MSG_COMPLETE); in send_reply()
1048 auto downstream = get_downstream(); in error_reply() local
1050 if (!downstream) { in error_reply()
1052 std::make_unique<Downstream>(this, handler_->get_mcpool(), 1)); in error_reply()
1053 downstream = get_downstream(); in error_reply()
1056 auto &resp = downstream->response(); in error_reply()
1057 auto &balloc = downstream->get_block_allocator(); in error_reply()
1067 auto output = downstream->get_response_buf(); in error_reply()
1086 const auto &req = downstream->request(); in error_reply()
1091 downstream->response_sent_body_length += html.size(); in error_reply()
1094 downstream->set_response_state(DownstreamState::MSG_COMPLETE); in error_reply()
1097 void HttpsUpstream::attach_downstream(std::unique_ptr<Downstream> downstream) { in attach_downstream() argument
1099 downstream_ = std::move(downstream); in attach_downstream()
1110 Downstream *HttpsUpstream::get_downstream() const { return downstream_.get(); } in get_downstream()
1112 std::unique_ptr<Downstream> HttpsUpstream::pop_downstream() { in pop_downstream()
1113 return std::unique_ptr<Downstream>(downstream_.release()); in pop_downstream()
1116 int HttpsUpstream::on_downstream_header_complete(Downstream *downstream) { in on_downstream_header_complete() argument
1118 if (downstream->get_non_final_response()) { in on_downstream_header_complete()
1119 DLOG(INFO, downstream) << "HTTP non-final response header"; in on_downstream_header_complete()
1121 DLOG(INFO, downstream) << "HTTP response header completed"; in on_downstream_header_complete()
1125 const auto &req = downstream->request(); in on_downstream_header_complete()
1126 auto &resp = downstream->response(); in on_downstream_header_complete()
1127 auto &balloc = downstream->get_block_allocator(); in on_downstream_header_complete()
1128 auto dconn = downstream->get_downstream_connection(); in on_downstream_header_complete()
1131 if (downstream->get_non_final_response() && in on_downstream_header_complete()
1132 !downstream->supports_non_final_response()) { in on_downstream_header_complete()
1138 if (!downstream->get_non_final_response()) { in on_downstream_header_complete()
1144 if (dmruby_ctx->run_on_response_proc(downstream) != 0) { in on_downstream_header_complete()
1149 if (downstream->get_response_state() == DownstreamState::MSG_COMPLETE) { in on_downstream_header_complete()
1157 if (mruby_ctx->run_on_response_proc(downstream) != 0) { in on_downstream_header_complete()
1162 if (downstream->get_response_state() == DownstreamState::MSG_COMPLETE) { in on_downstream_header_complete()
1170 auto buf = downstream->get_response_buf(); in on_downstream_header_complete()
1176 if (req.connect_proto != ConnectProto::NONE && downstream->get_upgraded()) { in on_downstream_header_complete()
1191 downstream->rewrite_location_response_header( in on_downstream_header_complete()
1195 if (downstream->get_non_final_response()) { in on_downstream_header_complete()
1226 // We check downstream->get_response_connection_close() in case when in on_downstream_header_complete()
1233 } else if (!downstream->get_upgraded()) { in on_downstream_header_complete()
1237 if (!connect_method && downstream->get_upgraded()) { in on_downstream_header_complete()
1292 if (req.method != HTTP_CONNECT || !downstream->get_upgraded()) { in on_downstream_header_complete()
1293 auto affinity_cookie = downstream->get_affinity_cookie_to_send(); in on_downstream_header_complete()
1344 int HttpsUpstream::on_downstream_body(Downstream *downstream, in on_downstream_body() argument
1350 auto output = downstream->get_response_buf(); in on_downstream_body()
1351 if (downstream->get_chunked_response()) { in on_downstream_body()
1357 downstream->response_sent_body_length += len; in on_downstream_body()
1359 if (downstream->get_chunked_response()) { in on_downstream_body()
1365 int HttpsUpstream::on_downstream_body_complete(Downstream *downstream) { in on_downstream_body_complete() argument
1366 const auto &req = downstream->request(); in on_downstream_body_complete()
1367 auto &resp = downstream->response(); in on_downstream_body_complete()
1369 if (downstream->get_chunked_response()) { in on_downstream_body_complete()
1370 auto output = downstream->get_response_buf(); in on_downstream_body_complete()
1382 DLOG(INFO, downstream) << "HTTP response completed"; in on_downstream_body_complete()
1385 if (!downstream->validate_response_recv_body_length()) { in on_downstream_body_complete()
1391 downstream->get_request_state() != DownstreamState::MSG_COMPLETE) { in on_downstream_body_complete()
1398 int HttpsUpstream::on_downstream_abort_request(Downstream *downstream, in on_downstream_abort_request() argument
1406 Downstream *downstream) { in on_downstream_abort_request_with_https_redirect() argument
1407 redirect_to_https(downstream); in on_downstream_abort_request_with_https_redirect()
1412 int HttpsUpstream::redirect_to_https(Downstream *downstream) { in redirect_to_https() argument
1413 auto &req = downstream->request(); in redirect_to_https()
1426 auto &balloc = downstream->get_block_allocator(); in redirect_to_https()
1438 auto &resp = downstream->response(); in redirect_to_https()
1444 return send_reply(downstream, nullptr, 0); in redirect_to_https()
1464 int HttpsUpstream::on_downstream_reset(Downstream *downstream, bool no_retry) { in on_downstream_reset() argument
1468 assert(downstream == downstream_.get()); in on_downstream_reset()
1518 rv = on_downstream_abort_request_with_https_redirect(downstream); in on_downstream_reset()
1530 int HttpsUpstream::initiate_push(Downstream *downstream, const StringRef &uri) { in initiate_push() argument
1564 Downstream *
1565 HttpsUpstream::on_downstream_push_promise(Downstream *downstream, in on_downstream_push_promise() argument
1571 Downstream *downstream, Downstream *promised_downstream) { in on_downstream_push_promise_complete() argument
1578 Downstream *promised_downstream) {} in cancel_premature_downstream()