From f326110514a6ba06852bd4333ebb4166b626d29a Mon Sep 17 00:00:00 2001 From: Shreyas Zare Date: Sun, 28 Jun 2020 19:32:44 +0530 Subject: [PATCH] CacheZone: optimized code in ContainsNameServerRecords(). --- DnsServerCore/Dns/Zones/CacheZone.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/DnsServerCore/Dns/Zones/CacheZone.cs b/DnsServerCore/Dns/Zones/CacheZone.cs index d9d5f978..45fbe3e5 100644 --- a/DnsServerCore/Dns/Zones/CacheZone.cs +++ b/DnsServerCore/Dns/Zones/CacheZone.cs @@ -167,8 +167,21 @@ namespace DnsServerCore.Dns.Zones public override bool ContainsNameServerRecords() { - IReadOnlyList records = QueryRecords(DnsResourceRecordType.NS, false); - return (records.Count > 0) && (records[0].Type == DnsResourceRecordType.NS); + if (!_entries.TryGetValue(DnsResourceRecordType.NS, out IReadOnlyList records)) + return false; + + foreach (DnsResourceRecord record in records) + { + if (record.IsStale) + continue; + + if (record.TtlValue < 1u) + continue; + + return true; + } + + return false; } #endregion