From 323e6d7ad6b29bc18cc9b3c231ba6d3ce2b2272b Mon Sep 17 00:00:00 2001 From: dev_amdtel Date: Fri, 12 Sep 2014 13:40:19 +0400 Subject: [PATCH] fix MsDns2012 NS record bug --- .../DnsCommands.cs | 18 ++++++++++++++++++ .../MsDNS.cs | 8 +++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/DnsCommands.cs b/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/DnsCommands.cs index 531895a9..61661007 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/DnsCommands.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/DnsCommands.cs @@ -365,7 +365,25 @@ namespace WebsitePanel.Providers.DNS cmd.addParam( "Force" ); ps.RunPipeline( cmd ); } + + public static void Remove_DnsServerResourceRecords(this PowerShellHelper ps, string zoneName, string type) + { + var cmd = new Command("Get-DnsServerResourceRecord"); + cmd.addParam("ZoneName", zoneName); + cmd.addParam("RRType", type); + Collection resourceRecords = ps.RunPipeline(cmd); + foreach (PSObject resourceRecord in resourceRecords) + { + cmd = new Command("Remove-DnsServerResourceRecord"); + cmd.addParam("ZoneName", zoneName); + cmd.addParam("InputObject", resourceRecord); + + cmd.addParam("Force"); + ps.RunPipeline(cmd); + } + } + public static void Update_DnsServerResourceRecordSOA(this PowerShellHelper ps, string zoneName, TimeSpan ExpireLimit, TimeSpan MinimumTimeToLive, string PrimaryServer, TimeSpan RefreshInterval, string ResponsiblePerson, TimeSpan RetryDelay, diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/MsDNS.cs b/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/MsDNS.cs index 27f99a07..153f7f58 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/MsDNS.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/MsDNS.cs @@ -98,12 +98,18 @@ namespace WebsitePanel.Providers.DNS public virtual void AddPrimaryZone( string zoneName, string[] secondaryServers ) { ps.Add_DnsServerPrimaryZone( zoneName, secondaryServers ); + + // remove ns records + ps.Remove_DnsServerResourceRecords(zoneName, "NS"); } public virtual void AddSecondaryZone( string zoneName, string[] masterServers ) { ps.Add_DnsServerSecondaryZone( zoneName, masterServers ); - } + + // remove ns records + ps.Remove_DnsServerResourceRecords(zoneName, "NS"); + } public virtual void DeleteZone( string zoneName ) {