From: Frantisek Tobias Date: Wed, 15 Oct 2025 11:55:05 +0000 (+0200) Subject: quic/stream: Handle IO error event initiated by dns layer X-Git-Tag: v6.2.0~2^2~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aefb6dc9e0781fb17399ee09d0365e6125edc05c;p=thirdparty%2Fknot-resolver.git quic/stream: Handle IO error event initiated by dns layer --- diff --git a/daemon/quic_stream.c b/daemon/quic_stream.c index 1581cc5f3..484acfba0 100644 --- a/daemon/quic_stream.c +++ b/daemon/quic_stream.c @@ -3,6 +3,7 @@ */ #include "quic_common.h" +#include "quic_conn.h" #include "session2.h" #include #include "quic_stream.h" @@ -250,12 +251,17 @@ static enum protolayer_event_cb_result pl_quic_stream_event_unwrap( enum protolayer_event_type event, void **baton, struct session2 *session, void *sess_data) { - if (event == PROTOLAYER_EVENT_CLOSE || event == PROTOLAYER_EVENT_FORCE_CLOSE) { + if (event == PROTOLAYER_EVENT_FORCE_CLOSE) { + struct pl_quic_stream_sess_data *stream = sess_data; + quic_event_close_connection(stream->conn_ref, session->transport.parent); + return PROTOLAYER_EVENT_CONSUME; + } + if (event == PROTOLAYER_EVENT_CLOSE) { pl_quic_stream_sess_deinit(session, sess_data); return PROTOLAYER_EVENT_CONSUME; } - return PROTOLAYER_EVENT_CONSUME; + return PROTOLAYER_EVENT_PROPAGATE; } __attribute__((constructor))