mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-23 18:49:54 +00:00
the presence of a DNAME record proves that the name does not exist in the zone but as we don't want to use that for NXDMOMAIN return DNS_R_DNAME from dns_nsec_noexistnodata
This commit is contained in:
parent
7f60bb39df
commit
8ef23f9fb0
@ -101,6 +101,9 @@ dns_nsec_noexistnodata(dns_rdatatype_t type, const dns_name_t *name,
|
|||||||
* or we can determine whether there is data or not at the name.
|
* or we can determine whether there is data or not at the name.
|
||||||
* If the name does not exist return the wildcard name.
|
* If the name does not exist return the wildcard name.
|
||||||
*
|
*
|
||||||
|
* Return DNS_R_DNAME when the NSEC indicates that name is covered by
|
||||||
|
* a DNAME. 'wild' is not set in this case.
|
||||||
|
*
|
||||||
* Return ISC_R_IGNORE when the NSEC is not the appropriate one.
|
* Return ISC_R_IGNORE when the NSEC is not the appropriate one.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -374,8 +374,7 @@ dns_nsec_noexistnodata(dns_rdatatype_t type, const dns_name_t *name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (relation == dns_namereln_subdomain &&
|
if (relation == dns_namereln_subdomain &&
|
||||||
(dns_nsec_typepresent(&rdata, dns_rdatatype_dname) ||
|
dns_nsec_typepresent(&rdata, dns_rdatatype_ns) &&
|
||||||
dns_nsec_typepresent(&rdata, dns_rdatatype_ns)) &&
|
|
||||||
!dns_nsec_typepresent(&rdata, dns_rdatatype_soa))
|
!dns_nsec_typepresent(&rdata, dns_rdatatype_soa))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -388,6 +387,15 @@ dns_nsec_noexistnodata(dns_rdatatype_t type, const dns_name_t *name,
|
|||||||
return (ISC_R_IGNORE);
|
return (ISC_R_IGNORE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (relation == dns_namereln_subdomain &&
|
||||||
|
dns_nsec_typepresent(&rdata, dns_rdatatype_dname))
|
||||||
|
{
|
||||||
|
(*logit)(arg, ISC_LOG_DEBUG(3),
|
||||||
|
"nsec proves covered by dname");
|
||||||
|
*exists = ISC_FALSE;
|
||||||
|
return (DNS_R_DNAME);
|
||||||
|
}
|
||||||
|
|
||||||
result = dns_rdata_tostruct(&rdata, &nsec, NULL);
|
result = dns_rdata_tostruct(&rdata, &nsec, NULL);
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS)
|
||||||
return (result);
|
return (result);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user