mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-18 23:06:06 -05:00
- Fix http2 drop handling to clear the postpone_drop state so that
Some checks failed
ci / build (push) Has been cancelled
Some checks failed
ci / build (push) Has been cancelled
other streams on the http2 session are not affected by a drop, and can clean up properly if also dropped. Fix http2 send reply so that when there is a send failure is does not recurse into the mesh functions and also does not drop the connection due to the condition of one stream.
This commit is contained in:
parent
b858801feb
commit
c0522043f0
3 changed files with 9 additions and 3 deletions
|
|
@ -1,3 +1,11 @@
|
|||
3 December 2025: Wouter
|
||||
- Fix http2 drop handling to clear the postpone_drop state so that
|
||||
other streams on the http2 session are not affected by a drop,
|
||||
and can clean up properly if also dropped. Fix http2 send reply
|
||||
so that when there is a send failure is does not recurse into
|
||||
the mesh functions and also does not drop the connection due to
|
||||
the condition of one stream.
|
||||
|
||||
2 December 2025: Wouter
|
||||
- Fix to remove http2 stream mesh state when mesh new request is
|
||||
dropping the new request.
|
||||
|
|
|
|||
|
|
@ -2884,6 +2884,7 @@ submit_http_error:
|
|||
sldns_buffer_flip(h2_stream->qbuffer);
|
||||
h2_session->postpone_drop = 1;
|
||||
query_read_done = http2_query_read_done(h2_session, h2_stream);
|
||||
h2_session->postpone_drop = 0;
|
||||
if(query_read_done < 0)
|
||||
return NGHTTP2_ERR_CALLBACK_FAILURE;
|
||||
else if(!query_read_done) {
|
||||
|
|
@ -2893,11 +2894,9 @@ submit_http_error:
|
|||
* failure will result in reclaiming (and closing)
|
||||
* of comm point. */
|
||||
verbose(VERB_QUERY, "http2 query dropped in worker cb");
|
||||
h2_session->postpone_drop = 0;
|
||||
return NGHTTP2_ERR_CALLBACK_FAILURE;
|
||||
}
|
||||
/* nothing to submit right now, query added to mesh. */
|
||||
h2_session->postpone_drop = 0;
|
||||
return 0;
|
||||
}
|
||||
if(!http2_submit_dns_response(h2_session)) {
|
||||
|
|
|
|||
|
|
@ -6728,7 +6728,6 @@ comm_point_send_reply(struct comm_reply *repinfo)
|
|||
tcp_req_info_send_reply(repinfo->c->tcp_req_info);
|
||||
} else if(repinfo->c->use_h2) {
|
||||
if(!http2_submit_dns_response(repinfo->c->h2_session)) {
|
||||
comm_point_drop_reply(repinfo);
|
||||
return;
|
||||
}
|
||||
repinfo->c->h2_stream = NULL;
|
||||
|
|
|
|||
Loading…
Reference in a new issue