+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.
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) {
* 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)) {
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;