|
|
@@ -569,13 +569,44 @@ function cwp7_setDNS($params) {
|
|
|
return 'Error: invalid domain name';
|
|
|
}
|
|
|
$domainName = $_POST['d'];
|
|
|
+ $zoneRecords = array();
|
|
|
if(isset($_POST['s'])){
|
|
|
if(!filter_var($_POST['s'], FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME)){
|
|
|
return 'Error: invalid domain name';
|
|
|
}
|
|
|
$hostName = $_POST['s'] . '.' . $domainName . '.';
|
|
|
+ $newRecord = array(
|
|
|
+ 'line' => $hostName.'|CNAME|0',
|
|
|
+ 'name' => $hostName,
|
|
|
+ 'type' => 'CNAME',
|
|
|
+ 'class' => 'IN',
|
|
|
+ 'data' => array(
|
|
|
+ 'address' => $params['servername'],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ array_push($zoneRecords, $newRecord);
|
|
|
} else {
|
|
|
$hostName = $domainName . '.';
|
|
|
+ $domainRecord = array(
|
|
|
+ 'line' => $hostName.'|A|0',
|
|
|
+ 'name' => $hostName,
|
|
|
+ 'type' => 'CNAME',
|
|
|
+ 'class' => 'IN',
|
|
|
+ 'data' => array(
|
|
|
+ 'address' => $params['servername'],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ array_push($zoneRecords, $domainRecord);
|
|
|
+ $wwwRecord = array(
|
|
|
+ 'line' => 'www.'.$hostName.'|A|0',
|
|
|
+ 'name' => 'www.'.$hostName,
|
|
|
+ 'type' => 'CNAME',
|
|
|
+ 'class' => 'IN',
|
|
|
+ 'data' => array(
|
|
|
+ 'address' => $params['servername'],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ array_push($zoneRecords, $wwwRecord);
|
|
|
}
|
|
|
$zoneIDcollection = Capsule::table('dns_manager2_zone')
|
|
|
->select('id')
|
|
|
@@ -587,19 +618,8 @@ function cwp7_setDNS($params) {
|
|
|
return 'Error: zone ID not found for domain ' . $domainName;
|
|
|
}
|
|
|
$dnsZone = localAPI('dnsmanager', array( 'dnsaction' => 'getZone', 'zone_id' => $zoneID));
|
|
|
- $zoneRecords = array();
|
|
|
- $newRecord = array(
|
|
|
- 'line' => $hostName.'|CNAME|0',
|
|
|
- 'name' => $hostName,
|
|
|
- 'type' => 'CNAME',
|
|
|
- 'class' => 'IN',
|
|
|
- 'data' => array(
|
|
|
- 'address' => $params['servername'],
|
|
|
- ),
|
|
|
- );
|
|
|
- array_push($zoneRecords, $newRecord);
|
|
|
foreach($dnsZone['data']->records as $record) {
|
|
|
- if($record->name != $hostName || ($record->type != 'A' && $record->type != 'CNAME')) {
|
|
|
+ if(($record->name != $hostName && $record->name != 'www.'.$domainName . '.') || ($record->type != 'A' && $record->type != 'CNAME')) {
|
|
|
array_push($zoneRecords, $record);
|
|
|
};
|
|
|
}
|