diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c index 2a72c6623cd9e590eb0345ba15322c712e838d1f..7c1b14998fb1c2d56ae72862aaf43f92a07f3c0f 100644 --- a/lib/layer/iterate.c +++ b/lib/layer/iterate.c @@ -63,6 +63,7 @@ static bool is_paired_to_query(const knot_pkt_t *answer, struct kr_query *query) const knot_dname_t *qname = minimized_qname(query, &qtype); return query->id == knot_wire_get_id(answer->wire) && + knot_wire_get_qdcount(answer->wire) > 0 && (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)); diff --git a/tests/pydnstest/scenario.py b/tests/pydnstest/scenario.py index 083d27178d9e13cd35b44e0d1d2d56ff7a391fc0..29a40d466d41dab25251a94a228674a94efd28ad 100644 --- a/tests/pydnstest/scenario.py +++ b/tests/pydnstest/scenario.py @@ -104,7 +104,9 @@ class Entry: answer.use_edns(query.edns, query.ednsflags) if 'copy_id' in self.adjust_fields: answer.id = query.id - answer.question[0].name = query.question[0].name + # Copy letter-case if the template has QD + if len(answer.question) > 0: + answer.question[0].name = query.question[0].name if 'copy_query' in self.adjust_fields: answer.question = query.question return answer diff --git a/tests/testdata_notimpl/iter_req_qname.rpl b/tests/testdata/iter_req_qname.rpl similarity index 100% rename from tests/testdata_notimpl/iter_req_qname.rpl rename to tests/testdata/iter_req_qname.rpl