mirror of
https://github.com/fergalmoran/DnsServer.git
synced 2026-04-24 21:42:46 +00:00
AuthZone: fixed issues in GetNameServerAddressesAsync(). Code refactoring done.
This commit is contained in:
@@ -355,15 +355,20 @@ namespace DnsServerCore.Dns.Zones
|
||||
return nameServers;
|
||||
}
|
||||
|
||||
public Task<IReadOnlyList<NameServerAddress>> GetNameServerAddressesAsync(DnsServer dnsServer)
|
||||
public async Task<IReadOnlyList<NameServerAddress>> GetAllNameServerAddressesAsync(DnsServer dnsServer)
|
||||
{
|
||||
DnsResourceRecord soaRecord = _entries[DnsResourceRecordType.SOA][0];
|
||||
IReadOnlyList<NameServerAddress> primaryNameServers = await GetPrimaryNameServerAddressesAsync(dnsServer);
|
||||
IReadOnlyList<NameServerAddress> secondaryNameServers = await GetSecondaryNameServerAddressesAsync(dnsServer);
|
||||
|
||||
IReadOnlyList<NameServerAddress> primaryNameServers = soaRecord.GetPrimaryNameServers();
|
||||
if (primaryNameServers.Count > 0)
|
||||
return Task.FromResult(primaryNameServers);
|
||||
if (secondaryNameServers.Count < 1)
|
||||
return primaryNameServers;
|
||||
|
||||
return GetSecondaryNameServerAddressesAsync(dnsServer);
|
||||
List<NameServerAddress> allNameServers = new List<NameServerAddress>(primaryNameServers.Count + secondaryNameServers.Count);
|
||||
|
||||
allNameServers.AddRange(primaryNameServers);
|
||||
allNameServers.AddRange(secondaryNameServers);
|
||||
|
||||
return allNameServers;
|
||||
}
|
||||
|
||||
public void SyncRecords(Dictionary<DnsResourceRecordType, List<DnsResourceRecord>> newEntries)
|
||||
|
||||
@@ -154,8 +154,8 @@ namespace DnsServerCore.Dns.Zones
|
||||
|
||||
_isExpired = DateTime.UtcNow > _expiry;
|
||||
|
||||
//get name server addresses
|
||||
IReadOnlyList<NameServerAddress> nameServers = await GetNameServerAddressesAsync(_dnsServer);
|
||||
//get all name server addresses
|
||||
IReadOnlyList<NameServerAddress> nameServers = await GetAllNameServerAddressesAsync(_dnsServer);
|
||||
|
||||
if (nameServers.Count == 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user