IPv6 support v1.0
Server: Added IPv6 support for all DNS Providers, but only tested ISC BIND & MS DNS Enterprise Server: Added support for IPv6. Hyper-V not tested, and probably doesn't work. When using IPv6 with Hyper-V it assigns "/CIDR" to the subnet mask, and I don't know if this is the correct implementation. Portal: Modified all IP input masks to accept and validate IPv6. IP Ranges support IP/CIDR format.
This commit is contained in:
parent
90219f284f
commit
c4a1b5f4d6
44 changed files with 3221 additions and 247 deletions
|
@ -190,6 +190,8 @@ namespace WebsitePanel.Providers.DNS
|
|||
{
|
||||
if (record.RecordType == DnsRecordType.A)
|
||||
AddARecord(zoneName, record.RecordName, record.RecordData);
|
||||
else if (record.RecordType == DnsRecordType.AAAA)
|
||||
AddAAAARecord(zoneName, record.RecordName, record.RecordData);
|
||||
else if (record.RecordType == DnsRecordType.CNAME)
|
||||
AddCNameRecord(zoneName, record.RecordName, record.RecordData);
|
||||
else if (record.RecordType == DnsRecordType.MX)
|
||||
|
@ -225,7 +227,7 @@ namespace WebsitePanel.Providers.DNS
|
|||
{
|
||||
try
|
||||
{
|
||||
if (record.RecordType == DnsRecordType.A || record.RecordType == DnsRecordType.CNAME)
|
||||
if (record.RecordType == DnsRecordType.A || record.RecordType == DnsRecordType.AAAA || record.RecordType == DnsRecordType.CNAME)
|
||||
record.RecordName = CorrectRecordName(zoneName, record.RecordName);
|
||||
|
||||
// delete record
|
||||
|
@ -254,7 +256,7 @@ namespace WebsitePanel.Providers.DNS
|
|||
}
|
||||
#endregion
|
||||
|
||||
#region A records
|
||||
#region A & AAAA records
|
||||
private void AddARecord(string zoneName, string host, string ip)
|
||||
{
|
||||
// get all zone records
|
||||
|
@ -285,6 +287,34 @@ namespace WebsitePanel.Providers.DNS
|
|||
UpdateZone(zoneName, records);
|
||||
}
|
||||
|
||||
private void AddAAAARecord(string zoneName, string host, string ip) {
|
||||
// get all zone records
|
||||
List<DnsRecord> records = GetZoneRecordsArrayList(zoneName);
|
||||
|
||||
// delete AAAA record
|
||||
//DeleteARecordInternal(records, zoneName, host);
|
||||
|
||||
//check if user tries to add existent zone record
|
||||
foreach (DnsRecord dnsRecord in records) {
|
||||
if ((String.Compare(dnsRecord.RecordName, host, StringComparison.OrdinalIgnoreCase) == 0)
|
||||
&& (String.Compare(dnsRecord.RecordData, ip, StringComparison.OrdinalIgnoreCase) == 0)
|
||||
)
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// add new AAAA record
|
||||
DnsRecord record = new DnsRecord();
|
||||
record.RecordType = DnsRecordType.AAAA;
|
||||
record.RecordName = host;
|
||||
record.RecordData = ip;
|
||||
records.Add(record);
|
||||
|
||||
// update zone
|
||||
UpdateZone(zoneName, records);
|
||||
}
|
||||
|
||||
private void DeleteRecord(string zoneName, DnsRecordType recordType,
|
||||
string recordName, string recordData)
|
||||
{
|
||||
|
@ -576,6 +606,15 @@ namespace WebsitePanel.Providers.DNS
|
|||
r.RecordText = zfLine;
|
||||
records.Add(r);
|
||||
}
|
||||
else if (recordType == "AAAA") // A record
|
||||
{
|
||||
DnsRecord r = new DnsRecord();
|
||||
r.RecordType = DnsRecordType.AAAA;
|
||||
r.RecordName = CorrectRecordName(zoneName, recordName);
|
||||
r.RecordData = recordData;
|
||||
r.RecordText = zfLine;
|
||||
records.Add(r);
|
||||
}
|
||||
else if (recordType == "CNAME") // CNAME record
|
||||
{
|
||||
DnsRecord r = new DnsRecord();
|
||||
|
@ -696,6 +735,12 @@ namespace WebsitePanel.Providers.DNS
|
|||
data = rr.RecordData;
|
||||
name = BuildRecordName(zoneName, host);
|
||||
}
|
||||
else if (rr.RecordType == DnsRecordType.AAAA) {
|
||||
type = "AAAA";
|
||||
host = rr.RecordName;
|
||||
data = rr.RecordData;
|
||||
name = BuildRecordName(zoneName, host);
|
||||
}
|
||||
else if (rr.RecordType == DnsRecordType.NS)
|
||||
{
|
||||
type = "NS";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue