}
if (list_almost_all &&
(rdataset->type == dns_rdatatype_rrsig ||
- rdataset->type == dns_rdatatype_nsec ||
- rdataset->type == dns_rdatatype_nsec3))
+ dns_rdatatype_isnsec(rdataset->type)))
{
continue;
}
dns_rdatasetiter_current(iter, &rds);
if (rds.type != dns_rdatatype_rrsig &&
- rds.type != dns_rdatatype_nsec &&
- rds.type != dns_rdatatype_nsec3 &&
+ !dns_rdatatype_isnsec(rds.type) &&
rds.type != dns_rdatatype_nsec3param &&
(!smartsign || rds.type != dns_rdatatype_dnskey))
{
dns_rdatatype_t t = rdataset.type;
dns_rdataset_disassociate(&rdataset);
- if (t != dns_rdatatype_nsec && t != dns_rdatatype_nsec3 &&
- t != dns_rdatatype_rrsig)
- {
+ if (!dns_rdatatype_isnsec(t) && t != dns_rdatatype_rrsig) {
active = true;
break;
}
return type == dns_rdatatype_rrsig || type == dns_rdatatype_sig;
}
+/*%
+ * Return true iff the rdata type is a insecurity proof: either NSEC or NSEC3.
+ */
+static inline bool
+dns_rdatatype_isnsec(dns_rdatatype_t type) {
+ return type == dns_rdatatype_nsec || type == dns_rdatatype_nsec3;
+}
+
/*%
* Return true iff the rdata type is an address: either A or AAAA.
*/
type = rdataset->covers;
}
if (type == dns_rdatatype_soa ||
- type == dns_rdatatype_nsec ||
- type == dns_rdatatype_nsec3)
+ dns_rdatatype_isnsec(type))
{
if (ttl > rdataset->ttl) {
ttl = rdataset->ttl;
DNS_RDATASETITER_FOREACH (rdsiter) {
dns_rdataset_t rdataset = DNS_RDATASET_INIT;
dns_rdatasetiter_current(rdsiter, &rdataset);
- if (rdataset.type != dns_rdatatype_nsec &&
- rdataset.type != dns_rdatatype_nsec3 &&
+ if (!dns_rdatatype_isnsec(rdataset.type) &&
rdataset.type != dns_rdatatype_rrsig)
{
if (rdataset.type > max_type) {
DNS_RDATASETITER_FOREACH (rdsiter) {
dns_rdataset_t rdataset = DNS_RDATASET_INIT;
dns_rdatasetiter_current(rdsiter, &rdataset);
- if (rdataset.type != dns_rdatatype_nsec &&
- rdataset.type != dns_rdatatype_nsec3 &&
+ if (!dns_rdatatype_isnsec(rdataset.type) &&
rdataset.type != dns_rdatatype_rrsig)
{
if (rdataset.type > max_type) {
* cut or not. It is needed for RFC3007
* validated updates.
*/
- if (type == dns_rdatatype_nsec ||
- type == dns_rdatatype_nsec3 ||
+ if (dns_rdatatype_isnsec(type) ||
type == dns_rdatatype_key)
{
result = ISC_R_SUCCESS;
if (rdset->rdclass != rdataset->rdclass) {
continue;
}
- if (rdset->type == dns_rdatatype_nsec ||
- rdset->type == dns_rdatatype_nsec3)
- {
+ if (dns_rdatatype_isnsec(rdset->type)) {
neg = rdset;
}
}
if (rdset->rdclass != rdclass) {
continue;
}
- if (rdset->type == dns_rdatatype_nsec ||
- rdset->type == dns_rdatatype_nsec3)
- {
+ if (dns_rdatatype_isnsec(rdset->type)) {
tneg = rdset;
}
}
if (rdset->rdclass != rdataset->rdclass) {
continue;
}
- if (rdset->type == dns_rdatatype_nsec ||
- rdset->type == dns_rdatatype_nsec3)
- {
+ if (dns_rdatatype_isnsec(rdset->type)) {
neg = rdset;
}
}
if (rdset->rdclass != rdclass) {
continue;
}
- if (rdset->type == dns_rdatatype_nsec ||
- rdset->type == dns_rdatatype_nsec3)
- {
+ if (dns_rdatatype_isnsec(rdset->type)) {
tneg = rdset;
}
}
bool setclosest = false;
bool setnearest = false;
- if (nrdataset->type != dns_rdatatype_nsec &&
- nrdataset->type != dns_rdatatype_nsec3)
- {
+ if (!dns_rdatatype_isnsec(nrdataset->type)) {
continue;
}
static isc_result_t
is_non_nsec_action(void *data, dns_rdataset_t *rrset) {
UNUSED(data);
- if (!(rrset->type == dns_rdatatype_nsec ||
- rrset->type == dns_rdatatype_nsec3 ||
+ if (!(dns_rdatatype_isnsec(rrset->type) ||
(rrset->type == dns_rdatatype_rrsig &&
- (rrset->covers == dns_rdatatype_nsec ||
- rrset->covers == dns_rdatatype_nsec3))))
+ dns_rdatatype_isnsec(rrset->covers))))
{
return ISC_R_EXISTS;
}
/*
* Do not rewrite if there is any sign of signatures.
*/
- if (rdataset->type == dns_rdatatype_nsec ||
- rdataset->type == dns_rdatatype_nsec3 ||
+ if (dns_rdatatype_isnsec(rdataset->type) ||
rdataset->type == dns_rdatatype_rrsig)
{
return false;
dns_ncache_current(rdataset, found, &trdataset);
type = trdataset.type;
dns_rdataset_disassociate(&trdataset);
- if (type == dns_rdatatype_nsec || type == dns_rdatatype_nsec3 ||
- type == dns_rdatatype_rrsig)
- {
+ if (dns_rdatatype_isnsec(type) || type == dns_rdatatype_rrsig) {
return false;
}
}
return ISC_R_NOTFOUND;
}
if (rdataset->trust == dns_trust_ultimate &&
- (rdataset->type == dns_rdatatype_nsec ||
- rdataset->type == dns_rdatatype_nsec3))
+ dns_rdatatype_isnsec(rdataset->type))
{
return ISC_R_NOTFOUND;
}
dns_ncache_current(rdataset, found, &trdataset);
type = trdataset.type;
dns_rdataset_disassociate(&trdataset);
- if (type == dns_rdatatype_nsec ||
- type == dns_rdatatype_nsec3 ||
+ if (dns_rdatatype_isnsec(type) ||
type == dns_rdatatype_rrsig)
{
return ISC_R_NOTFOUND;
return ISC_R_NOTFOUND;
}
if (rdataset->trust == dns_trust_ultimate &&
- (rdataset->type == dns_rdatatype_nsec ||
- rdataset->type == dns_rdatatype_nsec3))
+ dns_rdatatype_isnsec(rdataset->type))
{
return ISC_R_NOTFOUND;
}
dns_ncache_current(rdataset, found, &trdataset);
type = trdataset.type;
dns_rdataset_disassociate(&trdataset);
- if (type == dns_rdatatype_nsec ||
- type == dns_rdatatype_nsec3 ||
+ if (dns_rdatatype_isnsec(type) ||
type == dns_rdatatype_rrsig)
{
return ISC_R_NOTFOUND;