mirror of
https://github.com/fergalmoran/DnsServer.git
synced 2026-01-05 08:15:54 +00:00
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.
This commit is contained in:
@@ -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<DnsResourceRecord> QueryRecords(DnsResourceRecordType type)
|
||||
public virtual IReadOnlyList<DnsResourceRecord> QueryRecords(DnsResourceRecordType type)
|
||||
{
|
||||
//check for CNAME
|
||||
if (_entries.TryGetValue(DnsResourceRecordType.CNAME, out IReadOnlyList<DnsResourceRecord> existingCNAMERecords))
|
||||
@@ -243,6 +228,11 @@ namespace DnsServerCore.Dns.Zones
|
||||
return Array.Empty<DnsResourceRecord>();
|
||||
}
|
||||
|
||||
public IReadOnlyList<DnsResourceRecord> GetRecords(DnsResourceRecordType type)
|
||||
{
|
||||
return _entries[type];
|
||||
}
|
||||
|
||||
public override bool ContainsNameServerRecords()
|
||||
{
|
||||
IReadOnlyList<DnsResourceRecord> records = QueryRecords(DnsResourceRecordType.NS);
|
||||
@@ -259,6 +249,11 @@ namespace DnsServerCore.Dns.Zones
|
||||
set { _disabled = value; }
|
||||
}
|
||||
|
||||
public virtual bool IsActive
|
||||
{
|
||||
get { return !_disabled; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user