diff --git a/src/etc/inc/plugins.inc.d/dhcpd.inc b/src/etc/inc/plugins.inc.d/dhcpd.inc index 0ccb1598e..7a569ca59 100644 --- a/src/etc/inc/plugins.inc.d/dhcpd.inc +++ b/src/etc/inc/plugins.inc.d/dhcpd.inc @@ -1,7 +1,7 @@ + * Copyright (C) 2014-2022 Franco Fichtner * Copyright (C) 2010 Ermal Luçi * Copyright (C) 2005-2006 Colin Smith * Copyright (C) 2003-2004 Manuel Kasper @@ -352,7 +352,7 @@ function dhcpd_radvd_configure($verbose = false, $blacklist = array()) foreach ($stanzas as $stanza) { $radvdconf .= "\tprefix {$stanza} {\n"; - $radvdconf .= "\t\tDeprecatePrefix " . ($carp_mode || !empty($dhcpv6ifconf['rastatic']) ? "off" : "on") . ";\n"; + $radvdconf .= "\t\tDeprecatePrefix " . (!empty($dhcpv6ifconf['AdvDeprecatePrefix']) ? $dhcpv6ifconf['AdvDeprecatePrefix'] : ($carp_mode ? 'off' : 'on')) . ";\n"; switch ($dhcpv6ifconf['ramode']) { case 'managed': $radvdconf .= "\t\tAdvOnLink on;\n"; @@ -383,9 +383,7 @@ function dhcpd_radvd_configure($verbose = false, $blacklist = array()) if (!empty($dhcpv6ifconf['raroutes'])) { foreach (explode(',', $dhcpv6ifconf['raroutes']) as $raroute) { $radvdconf .= "\troute {$raroute} {\n"; - if ($carp_mode || !empty($dhcpv6ifconf['rastatic'])) { - $radvdconf .= "\t\tRemoveRoute off;\n"; - } + $radvdconf .= "\t\tRemoveRoute " . (!empty($dhcpv6ifconf['AdvRemoveRoute']) ? $dhcpv6ifconf['AdvRemoveRoute'] : ($carp_mode ? 'off' : 'on')) . ";\n"; if (!empty($dhcpv6ifconf['AdvRouteLifetime'])) { $radvdconf .= "\t\tAdvRouteLifetime {$dhcpv6ifconf['AdvRouteLifetime']};\n"; } diff --git a/src/www/services_router_advertisements.php b/src/www/services_router_advertisements.php index 1d097c4b2..fde2c322d 100644 --- a/src/www/services_router_advertisements.php +++ b/src/www/services_router_advertisements.php @@ -1,7 +1,7 @@ + * Copyright (C) 2016-2022 Franco Fichtner * Copyright (C) 2014-2016 Deciso B.V. * Copyright (C) 2003-2004 Manuel Kasper * Copyright (C) 2010 Seth Mos @@ -37,7 +37,18 @@ function val_int_in_range($value, $min, $max) { return (((string)(int)$value) == $value) && $value >= $min && $value <= $max; } -$advanced_options = array('AdvDefaultLifetime', 'AdvValidLifetime', 'AdvPreferredLifetime', 'AdvRDNSSLifetime', 'AdvDNSSLLifetime', 'AdvRouteLifetime', 'AdvLinkMTU'); +$advanced_options = [ + 'AdvDefaultLifetime', + 'AdvValidLifetime', + 'AdvPreferredLifetime', + 'AdvRDNSSLifetime', + 'AdvDNSSLLifetime', + 'AdvRouteLifetime', + 'AdvLinkMTU', + 'AdvDeprecatePrefix', + 'AdvRemoveRoute', +]; + if ($_SERVER['REQUEST_METHOD'] === 'GET') { if (!empty($_GET['if']) && !empty($config['interfaces'][$_GET['if']])) { $if = $_GET['if']; @@ -62,7 +73,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $pconfig['rasamednsasdhcp6'] = isset($config['dhcpdv6'][$if]['rasamednsasdhcp6']); $pconfig['radisablerdnss'] = isset($config['dhcpdv6'][$if]['radisablerdnss']); $pconfig['radefault'] = empty($config['dhcpdv6'][$if]['ranodefault']) ? true : null; - $pconfig['rastatic'] = !empty($config['dhcpdv6'][$if]['rastatic']); // defaults if (empty($pconfig['ramininterval'])) { @@ -179,7 +189,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { } $config['dhcpdv6'][$if]['rasamednsasdhcp6'] = !empty($pconfig['rasamednsasdhcp6']); $config['dhcpdv6'][$if]['radisablerdnss'] = !empty($pconfig['radisablerdnss']); - $config['dhcpdv6'][$if]['rastatic'] = !empty($pconfig['rastatic']); if (count($pconfig['raroutes'])) { $config['dhcpdv6'][$if]['raroutes'] = implode(',', $pconfig['raroutes']); @@ -336,16 +345,7 @@ include("head.inc"); - - - - - - /> -