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");
/>
- = gettext("Use the DNS settings of the DHCPv6 server"); ?>
+ = gettext('Use the DNS settings of the DHCPv6 server') ?>
+
+ />
+ = gettext('Do not send DNS settings to clients') ?>