Reported by r00tth3w0r1d@gmail.com as KRES-DOQ-04
The confusion stems from (my) original plans
to represent DoQ here as (fl.tls && !fl.tcp && !fl.http)
but ftobias ended up adding fl.quic.
Bugfixes
--------
- /local-data/addresses*: make multiple addresses work (#808, #954)
+- views: fix protocol-based matching for DoQ
Knot Resolver 6.4.0 (2026-06-17)
const struct kr_request_qsource_flags fl = req->qsource.flags;
if (fl.http)
return KR_PROTO_DOH;
+ if (fl.quic)
+ return KR_PROTO_DOQ;
if (fl.tcp)
return fl.tls ? KR_PROTO_DOT : KR_PROTO_TCP53;
- // UDP in some form
- return fl.tls ? KR_PROTO_DOQ : KR_PROTO_UDP53;
+ kr_assert(!fl.tls);
+ return KR_PROTO_UDP53;
}
static bool req_proto_matches(const struct kr_request *req, kr_proto_set proto_set)
{