nghttpx: Apply timeout for incoming header block
This commit is contained in:
parent
175c7886ea
commit
2795da840c
|
@ -279,6 +279,8 @@ int on_begin_headers_callback(nghttp2_session *session,
|
||||||
|
|
||||||
downstream->reset_upstream_rtimer();
|
downstream->reset_upstream_rtimer();
|
||||||
|
|
||||||
|
handler->repeat_read_timer();
|
||||||
|
|
||||||
auto &req = downstream->request();
|
auto &req = downstream->request();
|
||||||
|
|
||||||
// Although, we deprecated minor version from HTTP/2, we supply
|
// Although, we deprecated minor version from HTTP/2, we supply
|
||||||
|
@ -472,6 +474,7 @@ int on_frame_recv_callback(nghttp2_session *session, const nghttp2_frame *frame,
|
||||||
verbose_on_frame_recv_callback(session, frame, user_data);
|
verbose_on_frame_recv_callback(session, frame, user_data);
|
||||||
}
|
}
|
||||||
auto upstream = static_cast<Http2Upstream *>(user_data);
|
auto upstream = static_cast<Http2Upstream *>(user_data);
|
||||||
|
auto handler = upstream->get_client_handler();
|
||||||
|
|
||||||
switch (frame->hd.type) {
|
switch (frame->hd.type) {
|
||||||
case NGHTTP2_DATA: {
|
case NGHTTP2_DATA: {
|
||||||
|
@ -505,6 +508,8 @@ int on_frame_recv_callback(nghttp2_session *session, const nghttp2_frame *frame,
|
||||||
if (frame->headers.cat == NGHTTP2_HCAT_REQUEST) {
|
if (frame->headers.cat == NGHTTP2_HCAT_REQUEST) {
|
||||||
downstream->reset_upstream_rtimer();
|
downstream->reset_upstream_rtimer();
|
||||||
|
|
||||||
|
handler->stop_read_timer();
|
||||||
|
|
||||||
return upstream->on_request_headers(downstream, frame);
|
return upstream->on_request_headers(downstream, frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1506,8 +1511,6 @@ int Http2Upstream::error_reply(Downstream *downstream,
|
||||||
void Http2Upstream::add_pending_downstream(
|
void Http2Upstream::add_pending_downstream(
|
||||||
std::unique_ptr<Downstream> downstream) {
|
std::unique_ptr<Downstream> downstream) {
|
||||||
downstream_queue_.add_pending(std::move(downstream));
|
downstream_queue_.add_pending(std::move(downstream));
|
||||||
|
|
||||||
handler_->stop_read_timer();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Http2Upstream::remove_downstream(Downstream *downstream) {
|
void Http2Upstream::remove_downstream(Downstream *downstream) {
|
||||||
|
|
|
@ -76,7 +76,7 @@ int htp_msg_begin(http_parser *htp) {
|
||||||
|
|
||||||
upstream->attach_downstream(std::move(downstream));
|
upstream->attach_downstream(std::move(downstream));
|
||||||
|
|
||||||
handler->stop_read_timer();
|
handler->repeat_read_timer();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -292,6 +292,8 @@ int htp_hdrs_completecb(http_parser *htp) {
|
||||||
|
|
||||||
req.connection_close = !http_should_keep_alive(htp);
|
req.connection_close = !http_should_keep_alive(htp);
|
||||||
|
|
||||||
|
handler->stop_read_timer();
|
||||||
|
|
||||||
auto method = req.method;
|
auto method = req.method;
|
||||||
|
|
||||||
if (LOG_ENABLED(INFO)) {
|
if (LOG_ENABLED(INFO)) {
|
||||||
|
|
Loading…
Reference in New Issue