diff --git a/src/etc/inc/plugins.inc.d/dhcpd.inc b/src/etc/inc/plugins.inc.d/dhcpd.inc index 4ca8bebab..06edf1fb6 100644 --- a/src/etc/inc/plugins.inc.d/dhcpd.inc +++ b/src/etc/inc/plugins.inc.d/dhcpd.inc @@ -374,8 +374,8 @@ function dhcpd_radvd_configure($verbose = false, $blacklist = array()) } } - /* add DNS servers */ - $dnslist_tmp = array(); + $dnslist_tmp = []; + if (isset($dhcpv6ifconf['rasamednsasdhcp6']) && !empty($dhcpv6ifconf['dnsserver'][0])) { $dnslist_tmp = $dhcpv6ifconf['dnsserver']; } elseif (!isset($dhcpv6ifconf['rasamednsasdhcp6']) && !empty($dhcpv6ifconf['radnsserver'][0])) { @@ -389,13 +389,19 @@ function dhcpd_radvd_configure($verbose = false, $blacklist = array()) } elseif (!empty($config['system']['dnsserver'][0])) { $dnslist_tmp = $config['system']['dnsserver']; } - $dnslist = array(); + + $dnslist = []; + foreach ($dnslist_tmp as $server) { if (is_ipaddrv6($server)) { $dnslist[] = $server; } } + if (isset($dhcpv6ifconf['radisablerdnss'])) { + $dnslist = []; + } + if (count($dnslist) > 0) { $radvdconf .= "\tRDNSS " . implode(" ", $dnslist) . " {\n"; if (!empty($dhcpv6ifconf['AdvRDNSSLifetime'])) { diff --git a/src/www/services_router_advertisements.php b/src/www/services_router_advertisements.php index c70248fdb..b6da8486f 100644 --- a/src/www/services_router_advertisements.php +++ b/src/www/services_router_advertisements.php @@ -57,8 +57,10 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $pconfig[$fieldname] = null; } } + // boolean $pconfig['rasamednsasdhcp6'] = isset($config['dhcpdv6'][$if]['rasamednsasdhcp6']); + $pconfig['radisablerdnss'] = isset($config['dhcpdv6'][$if]['radisablerdnss']); $pconfig['radefault'] = empty($config['dhcpdv6'][$if]['ranodefault']) ? true : null; // defaults @@ -159,7 +161,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { unset($config['dhcpdv6'][$if]['rainterface']); } - # flipped in GUI on purpose + /* flipped in GUI on purpose */ if (empty($pconfig['radefault'])) { $config['dhcpdv6'][$if]['ranodefault'] = true; } elseif (isset($config['dhcpdv6'][$if]['ranodefault'])) { @@ -175,6 +177,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $config['dhcpdv6'][$if]['radnsserver'][] = $pconfig['radns2']; } $config['dhcpdv6'][$if]['rasamednsasdhcp6'] = !empty($pconfig['rasamednsasdhcp6']); + $config['dhcpdv6'][$if]['radisablerdnss'] = !empty($pconfig['radisablerdnss']); if (count($pconfig['raroutes'])) { $config['dhcpdv6'][$if]['raroutes'] = implode(',', $pconfig['raroutes']); @@ -401,7 +404,10 @@ include("head.inc");
/> - + +
+ /> +