diff --git a/DnsServerCore/Dns/Zones/StubZone.cs b/DnsServerCore/Dns/Zones/StubZone.cs
index d95abc46..56f75491 100644
--- a/DnsServerCore/Dns/Zones/StubZone.cs
+++ b/DnsServerCore/Dns/Zones/StubZone.cs
@@ -20,7 +20,6 @@ along with this program. If not, see .
using DnsServerCore.Dns.ResourceRecords;
using System;
using System.Collections.Generic;
-using System.Net;
using System.Threading;
using TechnitiumLibrary.Net.Dns;
using TechnitiumLibrary.Net.Dns.ResourceRecords;
@@ -155,56 +154,7 @@ namespace DnsServerCore.Dns.Zones
_isExpired = DateTime.UtcNow > _expiry;
//get all name server addresses
- List nameServers = new List();
-
- IReadOnlyList nsRecords = _entries[DnsResourceRecordType.NS];
-
- foreach (DnsResourceRecord nsRecord in nsRecords)
- {
- string nsDomain = (nsRecord.RDATA as DnsNSRecord).NameServer;
-
- IReadOnlyList glueRecords = nsRecord.GetGlueRecords();
- if (glueRecords.Count > 0)
- {
- foreach (DnsResourceRecord glueRecord in glueRecords)
- {
- switch (glueRecord.Type)
- {
- case DnsResourceRecordType.A:
- nameServers.Add(new NameServerAddress(nsDomain, (glueRecord.RDATA as DnsARecord).Address));
- break;
-
- case DnsResourceRecordType.AAAA:
- if (_dnsServer.PreferIPv6)
- nameServers.Add(new NameServerAddress(nsDomain, (glueRecord.RDATA as DnsAAAARecord).Address));
-
- break;
- }
- }
- }
- else
- {
- //resolve addresses
- DnsDatagram response = _dnsServer.DirectQuery(new DnsQuestionRecord(nsDomain, DnsResourceRecordType.A, DnsClass.IN));
- if (response != null)
- {
- IReadOnlyList addresses = DnsClient.ParseResponseA(response);
- foreach (IPAddress address in addresses)
- nameServers.Add(new NameServerAddress(nsDomain, address));
- }
-
- if (_dnsServer.PreferIPv6)
- {
- response = _dnsServer.DirectQuery(new DnsQuestionRecord(nsDomain, DnsResourceRecordType.AAAA, DnsClass.IN));
- if (response != null)
- {
- IReadOnlyList addresses = DnsClient.ParseResponseAAAA(response);
- foreach (IPAddress address in addresses)
- nameServers.Add(new NameServerAddress(nsDomain, address));
- }
- }
- }
- }
+ IReadOnlyList nameServers = GetAllNameServerAddresses(_dnsServer, false);
if (nameServers.Count == 0)
{
@@ -285,7 +235,7 @@ namespace DnsServerCore.Dns.Zones
{
LogManager log = _dnsServer.LogManager;
if (log != null)
- log.Write("DNS Server successfully refreshed '" + _name + "' stub zone from: " + soaResponse.Metadata.NameServerAddress.ToString());
+ log.Write("DNS Server successfully checked for update to '" + _name + "' stub zone from: " + soaResponse.Metadata.NameServerAddress.ToString());
return true;
}