summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorPhil Davis <phil.davis@world.inf.org>2014-02-24 19:47:22 -0800
committerPhil Davis <phil.davis@world.inf.org>2014-02-24 19:47:22 -0800
commit6a2016960b433f579b73f539ac5f64f5e956369e (patch)
tree772c2b89e21cf521f902b0ebaf9b32bdd2c67808 /etc
parentf13a1d6a8a57df7c5c6466bb34ebdf26e77a2846 (diff)
downloadpfsense-6a2016960b433f579b73f539ac5f64f5e956369e.zip
pfsense-6a2016960b433f579b73f539ac5f64f5e956369e.tar.gz
Fix #3483 only use IPv4 DNS servers in DHCP v4 conf
Version for 2.1 branch
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/services.inc14
1 files changed, 11 insertions, 3 deletions
diff --git a/etc/inc/services.inc b/etc/inc/services.inc
index 7f2b6d3..d44baae 100644
--- a/etc/inc/services.inc
+++ b/etc/inc/services.inc
@@ -386,6 +386,14 @@ function services_dhcpdv4_configure() {
$dhcpdcfg = $config['dhcpd'];
$Iflist = get_configured_interface_list();
+ /* Only consider DNS servers with IPv4 addresses for the IPv4 DHCP server. */
+ $dns_arrv4 = array();
+ foreach($syscfg['dnsserver'] as $dnsserver) {
+ if (is_ipaddrv4($dnsserver)) {
+ $dns_arrv4[] = $dnsserver;
+ }
+ }
+
if ($g['booting'])
echo gettext("Starting DHCP service...");
else
@@ -559,10 +567,10 @@ EOPP;
$dnscfg .= " option domain-name-servers {$ifcfgip};";
if ($newzone['domain-name'] && is_array($syscfg['dnsserver']) && ($syscfg['dnsserver'][0]))
$newzone['dns-servers'] = $syscfg['dnsserver'];
- } else if (is_array($syscfg['dnsserver']) && ($syscfg['dnsserver'][0])) {
- $dnscfg .= " option domain-name-servers " . join(",", $syscfg['dnsserver']) . ";";
+ } else if (!empty($dns_arrv4)) {
+ $dnscfg .= " option domain-name-servers " . join(",", $dns_arrv4) . ";";
if ($newzone['domain-name'])
- $newzone['dns-servers'] = $syscfg['dnsserver'];
+ $newzone['dns-servers'] = $dns_arrv4;
}
/* Create classes - These all contain comma separated lists. Join them into one
OpenPOWER on IntegriCloud