ra: enforce defaults from radvd.conf(5) manual

This commit is contained in:
Franco Fichtner 2016-05-26 23:14:56 +02:00
parent cd3a1b3ea6
commit 5faaa75a70
2 changed files with 11 additions and 5 deletions

View File

@ -166,8 +166,8 @@ function services_radvd_configure($blacklist = array())
$radvdconf .= "# Generated for DHCPv6 Server $dhcpv6if\n";
$radvdconf .= "interface {$realif} {\n";
$radvdconf .= sprintf("\tAdvSendAdvert %s;\n", !empty($dhcpv6ifconf['ranosend']) ? 'off' : 'on');
$radvdconf .= sprintf("\tMinRtrAdvInterval %s;\n", !empty($dhcpv6ifconf['ramininterval']) ? $dhcpv6ifconf['ramininterval'] : '225');
$radvdconf .= sprintf("\tMaxRtrAdvInterval %s;\n", !empty($dhcpv6ifconf['ramaxinterval']) ? $dhcpv6ifconf['ramaxinterval'] : '300');
$radvdconf .= sprintf("\tMinRtrAdvInterval %s;\n", !empty($dhcpv6ifconf['ramininterval']) ? $dhcpv6ifconf['ramininterval'] : '200');
$radvdconf .= sprintf("\tMaxRtrAdvInterval %s;\n", !empty($dhcpv6ifconf['ramaxinterval']) ? $dhcpv6ifconf['ramaxinterval'] : '600');
$mtu = legacy_interface_stats($realif)['mtu'];
if (is_numeric($mtu)) {
$radvdconf .= "\tAdvLinkMTU {$mtu};\n";

View File

@ -62,10 +62,10 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
// defaults
if (empty($pconfig['ramininterval'])) {
$pconfig['ramininterval'] = 225;
$pconfig['ramininterval'] = 200;
}
if (empty($pconfig['ramaxinterval'])) {
$pconfig['ramaxinterval'] = 300;
$pconfig['ramaxinterval'] = 600;
}
// arrays
@ -107,12 +107,18 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
}
}
if (!is_numericint($pconfig['ramaxinterval']) || $pconfig['ramaxnterval'] < 4 || $pconfig['ramaxinterval'] > 1800) {
$input_errors[] = gettext(sprintf('Maximum interval must be between %s and %s seconds.', 4, 1800));
// chain this validation, we use the former value for calculation */
} elseif (!is_numericint($pconfig['ramininterval']) || $pconfig['ramininterval'] < 3 || $pconfig['ramininterval'] > int($pconfig['ramaxinterval'] * 0.75)) {
$input_errors[] = gettext(sprintf('Minimum interval must be between %s and %s seconds.', 3, int($pconfig['ramaxinterval'] * 0.75)));
}
if (count($input_errors) == 0) {
if (!is_array($config['dhcpdv6'][$if])) {
$config['dhcpdv6'][$if] = array();
}
$config['dhcpdv6'][$if]['ramode'] = $pconfig['ramode'];
$config['dhcpdv6'][$if]['rapriority'] = $pconfig['rapriority'];
$config['dhcpdv6'][$if]['rainterface'] = $pconfig['rainterface'];