diff options
author | jim-p <jimp@pfsense.org> | 2013-05-23 15:42:23 -0400 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2013-05-23 15:42:23 -0400 |
commit | 5bf53285961945e8168b54fada99bbd206a9e764 (patch) | |
tree | e6ba4c0ecf31d53dbfa9923258017ac76af05431 | |
parent | 5c0c402a2b7701225591adf30b45ff0a52a80c21 (diff) | |
download | pfsense-5bf53285961945e8168b54fada99bbd206a9e764.zip pfsense-5bf53285961945e8168b54fada99bbd206a9e764.tar.gz |
Don't add zones multiple times if it can be avoided.
-rw-r--r-- | etc/inc/services.inc | 28 |
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']; + } } } } |