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:
Administrator 2012-08-18 04:53:29 +02:00
parent 90219f284f
commit c4a1b5f4d6
44 changed files with 3221 additions and 247 deletions

View file

@ -89,6 +89,8 @@ namespace WebsitePanel.Providers.DNS
{
// A record
{ DnsRecordType.A, new BuildDnsRecordDataEventHandler(BuildRecordData_ARecord) },
// AAAA record
{ DnsRecordType.AAAA, new BuildDnsRecordDataEventHandler(BuildRecordData_AAAARecord) },
// NS record
{ DnsRecordType.NS, new BuildDnsRecordDataEventHandler(BuildRecordData_NSRecord) },
// CNAME
@ -148,6 +150,13 @@ namespace WebsitePanel.Providers.DNS
RecordData = record.DataFields[0]
};
break;
case "AAAA":
dnsRecord = new DnsRecord {
RecordName = recordName,
RecordType = DnsRecordType.AAAA,
RecordData = record.DataFields[0]
};
break;
case "NS":
dnsRecord = new DnsRecord
{
@ -531,6 +540,12 @@ namespace WebsitePanel.Providers.DNS
//
dnsZone.Records.Add(m_strRecordName, "A", rr.RecordData);
break;
case DnsRecordType.AAAA:
// cleanup DNS record if exists
dnsZone.Records.Remove(m_strRecordName, "AAAA");
//
dnsZone.Records.Add(m_strRecordName, "AAAA", rr.RecordData);
break;
case DnsRecordType.NS:
// cleanup DNS record if exists
dnsZone.Records.Remove(m_strRecordName, "NS");
@ -583,6 +598,8 @@ namespace WebsitePanel.Providers.DNS
{
if (r_type == DnsRecordType.A)
return "A";
else if (r_type == DnsRecordType.AAAA)
return "AAAA";
else if (r_type == DnsRecordType.CNAME)
return "CNAME";
else if (r_type == DnsRecordType.MX)
@ -610,6 +627,13 @@ namespace WebsitePanel.Providers.DNS
data.Add(record.RecordData);
}
static void BuildRecordData_AAAARecord(string zoneName, ref string type,
DnsRecord record, List<string> data)
{
type = "AAAA";
data.Add(record.RecordData);
}
static void BuildRecordData_NSRecord(string zoneName, ref string type,
DnsRecord record, List<string> data)
{