{
/* Minimization disabled. */
const knot_dname_t *qname = query->sname;
- if (query->flags & (QUERY_NO_MINIMIZE|QUERY_CACHED)) {
+ if (query->flags & QUERY_NO_MINIMIZE) {
return qname;
}
{
uint16_t qtype = query->stype;
const knot_dname_t *qname = minimized_qname(query, &qtype);
-
return query->id == knot_wire_get_id(answer->wire) &&
(query->sclass == KNOT_CLASS_ANY || query->sclass == knot_pkt_qclass(answer)) &&
- qtype == knot_pkt_qtype(answer) &&
- knot_dname_is_equal(qname, knot_pkt_qname(answer));
+ (qtype == knot_pkt_qtype(answer) || query->stype == knot_pkt_qtype(answer)) &&
+ (knot_dname_is_equal(qname, knot_pkt_qname(answer)) ||
+ knot_dname_is_equal(query->sname, knot_pkt_qname(answer)));
}
/** Relaxed rule for AA, either AA=1 or SOA matching zone cut is required. */