ソースを参照

clientareafunctions

andre 3 年 前
コミット
c2a1da3078
1 ファイル変更24 行追加4 行削除
  1. 24 4
      cwp7.php

+ 24 - 4
cwp7.php

@@ -549,28 +549,48 @@ function cwp7_setDNS($params) {
 	if(!filter_var($_POST['d'], FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME)){
 		return 'Error: invalid domain name';
 	}
+	$domainName = $_POST['d'];
 	if(isset($_POST['s'])){
 		if(!filter_var($_POST['s'], FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME)){
 			return 'Error: invalid domain name';
 		}
+		$hostName = $_POST['s'] . '.' . $domainName;
+	} else {
+		$hostName = $domainName;
 	}
 	$zoneIDcollection = Capsule::table('dns_manager2_zone')
 		->select('id')
-		->where('name', '=', $_POST['d'])
+		->where('name', '=', $domainName)
 		->get();
 	$zoneIDobj = $zoneIDcollection[0];
 	$zoneID = $zoneIDobj->{'id'};
 	if(!isset($zoneID)) {
-		return 'Error: zone ID not found for domain ' . $params['domain'];
+		return 'Error: zone ID not found for domain ' . $domainName;
 	}
 	$dnsZone = localAPI('dnsmanager', array( 'dnsaction' => 'getZone', 'zone_id' => $zoneID));
+    $zoneRecords = array();
+    $newRecord = array(
+        'line' => $hostName.'.|A|0',
+        'name' => $hostName,
+        'type' => 'A',
+        'class' => 'IN',
+        'data' => array(
+            'address' => '5.226.148.139',
+        ),
+    );
+    array_push($zoneRecords, $newRecord);
+    foreach($dnsZone['data']->records as $record) {
+        if($record->name != $hostName) {
+            array_push($zoneRecords, $record);
+        };
+    }
 
 	logModuleCall(
 		'cwp7',
 		__FUNCTION__,
-		$_POST,
+		$params,
 		'debug custom',
-		$dnsZone
+		$zoneRecords
 	);
 	return 'success';
 }