diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc index 96959c260..66a6f0cde 100644 --- a/src/etc/inc/services.inc +++ b/src/etc/inc/services.inc @@ -405,7 +405,7 @@ function services_dhcpdv4_configure($verbose = false) /* Only consider DNS servers with IPv4 addresses for the IPv4 DHCP server. */ $dns_arrv4 = array(); - if (!empty($config['system']['dnsserver'])) { + if (!empty($config['system']['dnsserver'][0])) { foreach($config['system']['dnsserver'] as $dnsserver) { if (is_ipaddrv4($dnsserver)) { $dns_arrv4[] = $dnsserver; @@ -1042,10 +1042,19 @@ function services_dhcpdv6_configure($blacklist = array(), $verbose = false) return; } - $syscfg = config_read_array('system'); $dhcpdv6cfg = config_read_array('dhcpdv6'); $Iflist = get_configured_interface_list(); + /* Only consider DNS servers with IPv6 addresses for the IPv6 DHCP server. */ + $dns_arrv6 = array(); + if (!empty($config['system']['dnsserver'][0])) { + foreach($config['system']['dnsserver'] as $dnsserver) { + if (is_ipaddrv6($dnsserver)) { + $dns_arrv6[] = $dnsserver; + } + } + } + if ($verbose) { echo 'Starting DHCPv6 service...'; flush(); @@ -1094,7 +1103,6 @@ function services_dhcpdv6_configure($blacklist = array(), $verbose = false) $dhcpdv6cfg[$ifname]['prefixrange']['from'] = Net_IPv6::compress($range['start']); $dhcpdv6cfg[$ifname]['prefixrange']['to'] = Net_IPv6::compress($range['end']); - $dhcpdv6cfg[$ifname]['dns6ip'] = get_interface_ipv6($ifname); } } } @@ -1118,7 +1126,7 @@ function services_dhcpdv6_configure($blacklist = array(), $verbose = false) } $dhcpdv6conf = <<