localzone processing, during RPZ qname trigger processing,
the RRset retains its previous data correcly. Thanks to
Qifan Zhang, Palo Alto Networks, for the report.
+ - Fix for #1462: Fix that auth primary host name lookup
+ allows CNAMEs.
15 June 2026: Wouter
- Fix to add `max-transfer-size` and `max-transfer-time` that
/** check if the lookup target name equals the found answer name. */
static int
xfer_target_equals_answer_name(struct auth_master* lookup_target,
- struct ub_packed_rrset_key* answer)
+ struct ub_packed_rrset_key* answer, struct query_info* rq,
+ struct reply_info* rep)
{
uint8_t qname[LDNS_MAX_DOMAINLEN+1];
size_t qname_len;
}
if(query_dname_compare(answer->rk.dname, qname) == 0)
return 1;
+ /* It could be a CNAME. */
+ if(reply_find_rrset_section_an(rep, qname, qname_len,
+ LDNS_RR_TYPE_CNAME, rq->qclass))
+ return 1;
return 0;
}
struct ub_packed_rrset_key* answer =
reply_find_answer_rrset(&rq, rep);
if(answer && xfer_target_equals_answer_name(
- xfr->task_transfer->lookup_target, answer)) {
+ xfr->task_transfer->lookup_target, answer,
+ &rq, rep)) {
xfr_master_add_addrs(xfr->task_transfer->
lookup_target, answer, wanted_qtype);
} else if(answer) {
struct ub_packed_rrset_key* answer =
reply_find_answer_rrset(&rq, rep);
if(answer && xfer_target_equals_answer_name(
- xfr->task_probe->lookup_target, answer)) {
+ xfr->task_probe->lookup_target, answer,
+ &rq, rep)) {
xfr_master_add_addrs(xfr->task_probe->
lookup_target, answer, wanted_qtype);
} else if(answer) {