From 2af8bca7df4b53d60e342f2cccb45892fb18c05a Mon Sep 17 00:00:00 2001 From: Shreyas Zare Date: Sat, 13 Jun 2020 13:34:05 +0530 Subject: [PATCH] AuthZone: removed constructors that added SOA and NS records. Made QueryRecords() virtual to allow overriding. Added GetRecords() to directly get records. Added virtual IsActive to allow controlling zone state. --- DnsServerCore/Dns/Zones/AuthZone.cs | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/DnsServerCore/Dns/Zones/AuthZone.cs b/DnsServerCore/Dns/Zones/AuthZone.cs index 65be8f74..b554a024 100644 --- a/DnsServerCore/Dns/Zones/AuthZone.cs +++ b/DnsServerCore/Dns/Zones/AuthZone.cs @@ -22,7 +22,6 @@ using System; using System.Collections.Generic; using TechnitiumLibrary.IO; using TechnitiumLibrary.Net.Dns; -using TechnitiumLibrary.Net.Dns.ResourceRecords; namespace DnsServerCore.Dns.Zones { @@ -40,20 +39,6 @@ namespace DnsServerCore.Dns.Zones : base(name) { } - protected AuthZone(string name, DnsSOARecord soa) - : base(name) - { - _entries[DnsResourceRecordType.SOA] = new DnsResourceRecord[] { new DnsResourceRecord(_name, DnsResourceRecordType.SOA, DnsClass.IN, soa.Refresh, soa) }; - _entries[DnsResourceRecordType.NS] = new DnsResourceRecord[] { new DnsResourceRecord(_name, DnsResourceRecordType.NS, DnsClass.IN, soa.Refresh, new DnsNSRecord(soa.MasterNameServer)) }; - } - - protected AuthZone(string name, DnsSOARecord soa, DnsNSRecord ns) - : base(name) - { - _entries[DnsResourceRecordType.SOA] = new DnsResourceRecord[] { new DnsResourceRecord(_name, DnsResourceRecordType.SOA, DnsClass.IN, soa.Refresh, soa) }; - _entries[DnsResourceRecordType.NS] = new DnsResourceRecord[] { new DnsResourceRecord(_name, DnsResourceRecordType.NS, DnsClass.IN, soa.Refresh, ns) }; - } - #endregion #region IDisposable @@ -200,7 +185,7 @@ namespace DnsServerCore.Dns.Zones return false; } - public IReadOnlyList QueryRecords(DnsResourceRecordType type) + public virtual IReadOnlyList QueryRecords(DnsResourceRecordType type) { //check for CNAME if (_entries.TryGetValue(DnsResourceRecordType.CNAME, out IReadOnlyList existingCNAMERecords)) @@ -243,6 +228,11 @@ namespace DnsServerCore.Dns.Zones return Array.Empty(); } + public IReadOnlyList GetRecords(DnsResourceRecordType type) + { + return _entries[type]; + } + public override bool ContainsNameServerRecords() { IReadOnlyList records = QueryRecords(DnsResourceRecordType.NS); @@ -259,6 +249,11 @@ namespace DnsServerCore.Dns.Zones set { _disabled = value; } } + public virtual bool IsActive + { + get { return !_disabled; } + } + #endregion } }