MsDNS2012 fix : edit/delete empty name records

This commit is contained in:
dev_amdtel 2014-07-24 17:49:23 +04:00
parent 3130155c4c
commit f2564ce514
2 changed files with 12 additions and 4 deletions

View file

@ -228,6 +228,9 @@ namespace WebsitePanel.Providers.DNS
.Where( r => null != r ) .Where( r => null != r )
.Where( r => r.RecordType != DnsRecordType.SOA ) .Where( r => r.RecordType != DnsRecordType.SOA )
// .Where( r => !( r.RecordName == "@" && DnsRecordType.NS == r.RecordType ) ) // .Where( r => !( r.RecordName == "@" && DnsRecordType.NS == r.RecordType ) )
.OrderBy( r => r.RecordName )
.ThenBy( r => r.RecordType )
.ThenBy( r => r.RecordData )
.ToArray(); .ToArray();
} }
@ -303,13 +306,18 @@ namespace WebsitePanel.Providers.DNS
ps.RunPipeline( cmd ); ps.RunPipeline( cmd );
} }
public static void Remove_DnsServerResourceRecord( this PowerShellHelper ps, string zoneName, string Name, string type ) public static void Remove_DnsServerResourceRecord( this PowerShellHelper ps, string zoneName, string Name, string type, string recordData )
{ {
// Remove-DnsServerResourceRecord -ZoneName xxxx.com -Name "@" -RRType Soa -Force if (String.IsNullOrEmpty(Name)) Name = "@";
var cmd = new Command( "Remove-DnsServerResourceRecord" ); var cmd = new Command( "Remove-DnsServerResourceRecord" );
cmd.addParam( "ZoneName", zoneName ); cmd.addParam( "ZoneName", zoneName );
cmd.addParam( "Name", Name ); cmd.addParam( "Name", Name );
cmd.addParam( "RRType", type ); cmd.addParam( "RRType", type );
if (!String.IsNullOrEmpty(recordData))
cmd.addParam("RecordData", recordData);
cmd.addParam( "Force" ); cmd.addParam( "Force" );
ps.RunPipeline( cmd ); ps.RunPipeline( cmd );
} }

View file

@ -172,7 +172,7 @@ namespace WebsitePanel.Providers.DNS
string rrType; string rrType;
if( !RecordTypes.rrTypeFromRecord.TryGetValue( record.RecordType, out rrType ) ) if( !RecordTypes.rrTypeFromRecord.TryGetValue( record.RecordType, out rrType ) )
throw new Exception( "Unknown record type" ); throw new Exception( "Unknown record type" );
ps.Remove_DnsServerResourceRecord( zoneName, record.RecordName, rrType ); ps.Remove_DnsServerResourceRecord( zoneName, record.RecordName, rrType, record.RecordData );
} }
catch( Exception ex ) catch( Exception ex )
{ {