Skip to content

Commit

Permalink
Added toggle function and associated code for enable/disable RDNSS in…
Browse files Browse the repository at this point in the history
… dhcpv6 Moved Configuration to RADVD interface

PR: #4537
  • Loading branch information
Martin Wasley authored and fichtner committed Jan 21, 2021
1 parent 733089d commit 8ded045
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
12 changes: 9 additions & 3 deletions src/etc/inc/plugins.inc.d/dhcpd.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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])) {
Expand All @@ -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'])) {
Expand Down
10 changes: 8 additions & 2 deletions src/www/services_router_advertisements.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,10 @@ function val_int_in_range($value, $min, $max) {
$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
Expand Down Expand Up @@ -159,7 +161,7 @@ function val_int_in_range($value, $min, $max) {
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'])) {
Expand All @@ -175,6 +177,7 @@ function val_int_in_range($value, $min, $max) {
$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']);
Expand Down Expand Up @@ -401,7 +404,10 @@ function addRow() {
</div>
<br />
<input id="rasamednsasdhcp6" name="rasamednsasdhcp6" type="checkbox" value="yes" <?=!empty($pconfig['rasamednsasdhcp6']) ? "checked='checked'" : "";?> />
<strong><?= gettext("Use the DNS settings of the DHCPv6 server"); ?></strong>
<?= gettext('Use the DNS settings of the DHCPv6 server') ?>
<br />
<input name="radisablerdnss" type="checkbox" id="radisablerdnss" value="yes" <?=!empty($pconfig['radisablerdnss']) ? 'checked="checked"' : '' ?> />
<?= gettext('Do not send DNS settings to clients') ?>
</td>
</tr>
<tr>
Expand Down

0 comments on commit 8ded045

Please sign in to comment.