diff --git a/interface/web/dns/dns_a_edit.php b/interface/web/dns/dns_a_edit.php index d1bc853a873c82e1f74d5bd1f30ded0bb8fc6cad..01d6198d9d063c4df9cec1fe465f4ff7979609e9 100644 --- a/interface/web/dns/dns_a_edit.php +++ b/interface/web/dns/dns_a_edit.php @@ -97,7 +97,7 @@ class page_action extends tform_actions { } // end if user is not admin //* Check for duplicates where IP and hostname are the same - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE type = 'A' AND name = '".$this->dataRecord["name"]."' AND zone = '".$this->dataRecord["zone"]."' and data = '".$this->dataRecord["data"]."' and id != ".$this->id); + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'A' AND name = '".$this->dataRecord["name"]."' AND zone = '".$this->dataRecord["zone"]."' and data = '".$this->dataRecord["data"]."' and id != ".$this->id.") OR (type = 'CNAME' AND name = '".$this->dataRecord["name"]."' AND zone = '".$this->dataRecord["zone"]."' and id != ".$this->id.")"); if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("data_error_duplicate")."<br>"; unset($tmp); diff --git a/interface/web/dns/dns_cname_edit.php b/interface/web/dns/dns_cname_edit.php index 5513ff84d366a12e7a1545df3af97e12d185442a..9a76c1f07db969b28b220dc7cd5473be000a45d4 100644 --- a/interface/web/dns/dns_cname_edit.php +++ b/interface/web/dns/dns_cname_edit.php @@ -96,6 +96,11 @@ class page_action extends tform_actions { } } // end if user is not admin + //* Check for duplicates where IP and hostname are the same + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'A' AND name = '".$this->dataRecord["name"]."' AND zone = '".$this->dataRecord["zone"]."' and id != ".$this->id.") OR (type = 'CNAME' AND name = '".$this->dataRecord["name"]."' AND zone = '".$this->dataRecord["zone"]."' and id != ".$this->id.")"); + if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("data_error_duplicate")."<br>"; + unset($tmp); + // Set the server ID of the rr record to the same server ID as the parent record. $this->dataRecord["server_id"] = $soa["server_id"]; diff --git a/interface/web/dns/lib/lang/en_dns_a.lng b/interface/web/dns/lib/lang/en_dns_a.lng index 599de5cf9361157efaf7fec8e2b5268514e37bce..5bd9c335447e722ed66952e10edebd8f21ff54cb 100644 --- a/interface/web/dns/lib/lang/en_dns_a.lng +++ b/interface/web/dns/lib/lang/en_dns_a.lng @@ -12,5 +12,5 @@ $wb["name_error_empty"] = 'The hostname is empty.'; $wb["name_error_regex"] = 'The hostname has the wrong format.'; $wb["data_error_empty"] = 'IP-Address empty'; $wb["data_error_regex"] = 'IP-Address format invalid'; -$wb["data_error_duplicate"] = 'Duplicate A-Record'; +$wb["data_error_duplicate"] = 'Duplicate A-Record or CNAME-Record'; ?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/en_dns_cname.lng b/interface/web/dns/lib/lang/en_dns_cname.lng index 46f73a38784509f309184d8392ffc255b99468a1..96061b27c9f43374753dd85e7c0ab02b6805a9ce 100644 --- a/interface/web/dns/lib/lang/en_dns_cname.lng +++ b/interface/web/dns/lib/lang/en_dns_cname.lng @@ -12,4 +12,5 @@ $wb["name_error_empty"] = 'The hostname is empty.'; $wb["name_error_regex"] = 'The hostname has the wrong format.'; $wb["data_error_empty"] = 'Target hostname empty'; $wb["data_error_regex"] = 'Target hostname format invalid'; +$wb["data_error_duplicate"] = 'Duplicate A-Record or CNAME-Record'; ?> \ No newline at end of file