From 8d3061f04a0ba201736c818c0663ee30781bcb02 Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Fri, 17 Sep 2010 08:46:25 -0400 Subject: [PATCH] Fixed: FS#1318 - Bind won't load zone if multiple entries exist for same hostname --- interface/web/dns/lib/lang/en_dns_cname.lng | 1 + interface/web/dns/dns_a_edit.php | 2 +- interface/web/dns/dns_cname_edit.php | 5 +++++ interface/web/dns/lib/lang/en_dns_a.lng | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/interface/web/dns/dns_a_edit.php b/interface/web/dns/dns_a_edit.php index d1bc853..01d6198 100644 --- a/interface/web/dns/dns_a_edit.php +++ b/interface/web/dns/dns_a_edit.php @@ -97,7 +97,7 @@ } // 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 5513ff8..9a76c1f 100644 --- a/interface/web/dns/dns_cname_edit.php +++ b/interface/web/dns/dns_cname_edit.php @@ -96,6 +96,11 @@ } } // 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 599de5c..5bd9c33 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_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 46f73a3..96061b2 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_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 -- Gitblit v1.9.1