diff options
author | Phil Davis <phil.davis@world.inf.org> | 2014-02-24 19:47:22 -0800 |
---|---|---|
committer | Phil Davis <phil.davis@world.inf.org> | 2014-02-24 19:47:22 -0800 |
commit | 6a2016960b433f579b73f539ac5f64f5e956369e (patch) | |
tree | 772c2b89e21cf521f902b0ebaf9b32bdd2c67808 /etc/inc/services.inc | |
parent | f13a1d6a8a57df7c5c6466bb34ebdf26e77a2846 (diff) | |
download | pfsense-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/inc/services.inc')
-rw-r--r-- | etc/inc/services.inc | 14 |
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 |