AuthZone: Updated GetUpdatedNSecRRSet() and GetUpdatedNSec3RRSet() to compare TTL values too for deciding if new records should be used.

This commit is contained in:
Shreyas Zare
2022-04-03 16:02:14 +05:30
parent 1868d3b219
commit 64415c2fc6

View File

@@ -475,7 +475,7 @@ namespace DnsServerCore.Dns.Zones
DnsNSECRecordData newNSecRecord = new DnsNSECRecordData(nextDomainName, types);
if (!_entries.TryGetValue(DnsResourceRecordType.NSEC, out IReadOnlyList<DnsResourceRecord> existingRecords) || !existingRecords[0].RDATA.Equals(newNSecRecord))
if (!_entries.TryGetValue(DnsResourceRecordType.NSEC, out IReadOnlyList<DnsResourceRecord> existingRecords) || (existingRecords[0].TtlValue != ttl) || !existingRecords[0].RDATA.Equals(newNSecRecord))
return new DnsResourceRecord[] { new DnsResourceRecord(_name, DnsResourceRecordType.NSEC, DnsClass.IN, ttl, newNSecRecord) };
return Array.Empty<DnsResourceRecord>();
@@ -483,7 +483,7 @@ namespace DnsServerCore.Dns.Zones
internal IReadOnlyList<DnsResourceRecord> GetUpdatedNSec3RRSet(IReadOnlyList<DnsResourceRecord> newNSec3Records)
{
if (!_entries.TryGetValue(DnsResourceRecordType.NSEC3, out IReadOnlyList<DnsResourceRecord> existingRecords) || !existingRecords[0].RDATA.Equals(newNSec3Records[0].RDATA))
if (!_entries.TryGetValue(DnsResourceRecordType.NSEC3, out IReadOnlyList<DnsResourceRecord> existingRecords) || (existingRecords[0].TtlValue != newNSec3Records[0].TtlValue) || !existingRecords[0].RDATA.Equals(newNSec3Records[0].RDATA))
return newNSec3Records;
return Array.Empty<DnsResourceRecord>();