summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2013-05-23 15:42:23 -0400
committerjim-p <jimp@pfsense.org>2013-05-23 15:42:23 -0400
commit5bf53285961945e8168b54fada99bbd206a9e764 (patch)
treee6ba4c0ecf31d53dbfa9923258017ac76af05431
parent5c0c402a2b7701225591adf30b45ff0a52a80c21 (diff)
downloadpfsense-5bf53285961945e8168b54fada99bbd206a9e764.zip
pfsense-5bf53285961945e8168b54fada99bbd206a9e764.tar.gz
Don't add zones multiple times if it can be avoided.
-rw-r--r--etc/inc/services.inc28
1 files changed, 18 insertions, 10 deletions
diff --git a/etc/inc/services.inc b/etc/inc/services.inc
index 6e2d6d7..a18718c 100644
--- a/etc/inc/services.inc
+++ b/etc/inc/services.inc
@@ -845,21 +845,29 @@ EOD;
if ($need_ddns_updates) {
$dhcpdconf .= "ddns-update-style interim;\n";
if (is_array($ddns_zones)) {
+ $added_zones = array();
foreach ($ddns_zones as $zone) {
if (!is_array($zone) || empty($zone) || !is_array($zone['dns-servers']))
continue;
$primary = $zone['dns-servers'][0];
$secondary = empty($zone['dns-servers'][1]) ? "" : $zone['dns-servers'][1];
- $dhcpdconf .= "zone {$zone['domain-name']} {\n";
- $dhcpdconf .= " primary {$primary};\n";
- if (is_ipaddrv4($secondary))
- $dhcpdconf .= " secondary {$secondary};\n";
- $dhcpdconf .= "}\n";
- $dhcpdconf .= "zone {$zone['ptr-domain']} {\n";
- $dhcpdconf .= " primary {$primary};\n";
- if (is_ipaddrv4($secondary))
- $dhcpdconf .= " secondary {$secondary};\n";
- $dhcpdconf .= "}\n";
+ // We don't need to add zones multiple times.
+ if (!in_array($zone['domain-name'], $added_zones)) {
+ $dhcpdconf .= "zone {$zone['domain-name']} {\n";
+ $dhcpdconf .= " primary {$primary};\n";
+ if (is_ipaddrv4($secondary))
+ $dhcpdconf .= " secondary {$secondary};\n";
+ $dhcpdconf .= "}\n";
+ $added_zones[] = $zone['domain-name'];
+ }
+ if (!in_array($zone['ptr-domain'], $added_zones)) {
+ $dhcpdconf .= "zone {$zone['ptr-domain']} {\n";
+ $dhcpdconf .= " primary {$primary};\n";
+ if (is_ipaddrv4($secondary))
+ $dhcpdconf .= " secondary {$secondary};\n";
+ $dhcpdconf .= "}\n";
+ $added_zones[] = $zone['ptr-domain'];
+ }
}
}
}
OpenPOWER on IntegriCloud