Skip to content

Commit

Permalink
Improves DnsUpdateClient.
Browse files Browse the repository at this point in the history
  • Loading branch information
alanedwardes committed Feb 9, 2024
1 parent e33666f commit 2d19de0
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/Ae.Dns.Client/DnsUpdateClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public async Task<DnsMessage> Query(DnsMessage query, CancellationToken token =
query.EnsureOperationCode(DnsOperationCode.UPDATE);

var hostnames = query.Nameservers.Select(x => x.Host).ToArray();
var addresses = query.Nameservers.Select(x => x.Resource).OfType<DnsIpAddressResource>().Select(x => x.IPAddress).ToArray();

void ChangeRecords(ICollection<DnsResourceRecord> records)
{
Expand All @@ -41,6 +42,11 @@ void ChangeRecords(ICollection<DnsResourceRecord> records)
records.Remove(recordToRemove);
}

foreach (var recordToRemove in records.Where(x => x.Resource is DnsIpAddressResource ipr && addresses.Contains(ipr.IPAddress)).ToArray())
{
records.Remove(recordToRemove);
}

foreach (var nameserver in query.Nameservers)
{
records.Add(nameserver);
Expand Down

0 comments on commit 2d19de0

Please sign in to comment.