From d87ce014d96f19cc8a94b8ed4cf9453d57aa0de9 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Wed, 6 May 2020 16:54:58 +0200 Subject: [PATCH] interfaces: bring back special IPv6 vars --- src/etc/inc/interfaces.inc | 15 ++++----- src/www/system_advanced_network.php | 48 ++++++++++++++++++++++++++--- 2 files changed, 52 insertions(+), 11 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index af474b283a..cd1f922363 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -2897,11 +2897,11 @@ function interface_6to4_configure($interface = 'wan', $wancfg) function interface_dhcpv6_configure($interface = 'wan', $wancfg) { - global $config; + $syscfg = config_read_array('system'); /* write DUID if override was set */ - if (!empty($config['system']['ipv6duid'])) { - dhcp6c_duid_write($config['system']['ipv6duid']); + if (!empty($syscfg['ipv6duid'])) { + dhcp6c_duid_write($syscfg['ipv6duid']); /* clear DUID if it is faulty */ } elseif (empty(dhcp6c_duid_read())) { dhcp6c_duid_clear(); @@ -2931,7 +2931,7 @@ function interface_dhcpv6_configure($interface = 'wan', $wancfg) "/var/run/rtsold_{$realifv6}.pid", '/var/etc/rtsold_script.sh', '/usr/bin/true', /* XXX missing proper script to refresh resolv.conf */ - empty($wancfg['adv_dhcp6_debug']) ? '-d' : '-D', + empty($syscfg['dhcp6_debug']) ? '-d' : '-D', $realifv6 ) ); @@ -2970,6 +2970,7 @@ function interface_dhcpv6_prepare($interface = 'wan', $wancfg) $wanif = get_real_interface($interface, 'inet6'); $id = interface_dhcpv6_id($interface); + $syscfg = config_read_array('system'); $dhcp6cconf = DHCP6_Config_File_Basic($interface, $wancfg, $wanif, $id); @@ -2992,11 +2993,11 @@ function interface_dhcpv6_prepare($interface = 'wan', $wancfg) @file_put_contents("/var/etc/dhcp6c_{$interface}.conf", $dhcp6cconf); $dhcp6cscript = "#!/bin/sh\n"; - $dhcp6cscript .= "if [ -n '" . (!empty($wancfg['adv_dhcp6_debug']) ? 'debug' : '') . "' ]; then\n"; + $dhcp6cscript .= "if [ -n '" . (!empty($syscfg['dhcp6_debug']) ? 'debug' : '') . "' ]; then\n"; $dhcp6cscript .= "\t/usr/bin/logger -t dhcp6c \"dhcp6c \$REASON on {$wanif}\"\n"; $dhcp6cscript .= "fi\n"; $dhcp6cscript .= "case \$REASON in\n"; - $dhcp6cscript .= "REQUEST|" . (!empty($wancfg['dhcp6norelease']) ? 'EXIT' : 'RELEASE') . ")\n"; + $dhcp6cscript .= "REQUEST|" . (!empty($syscfg['dhcp6_norelease']) ? 'EXIT' : 'RELEASE') . ")\n"; $dhcp6cscript .= "\t/usr/bin/logger -t dhcp6c \"dhcp6c \$REASON on {$wanif} - running newipv6\"\n"; $dhcp6cscript .= "\t/usr/local/opnsense/service/configd_ctl.py interface newipv6 {$wanif}\n"; $dhcp6cscript .= "\t;;\n"; @@ -3010,7 +3011,7 @@ function interface_dhcpv6_prepare($interface = 'wan', $wancfg) $dhcp6ccommand = exec_safe( "/usr/local/sbin/dhcp6c %s -c %s -p %s %s", array( - '-' . (empty($wancfg['adv_dhcp6_debug']) ? 'd' : 'D' ) . (!empty($wancfg['dhcp6norelease']) ? 'n' : ''), + '-' . (empty($syscfg['dhcp6_debug']) ? 'd' : 'D' ) . (!empty($syscfg['dhcp6_norelease']) ? 'n' : ''), "/var/etc/dhcp6c_{$interface}.conf", "/var/run/dhcp6c_{$wanif}.pid", "{$wanif}" diff --git a/src/www/system_advanced_network.php b/src/www/system_advanced_network.php index 1e79c9c71e..c213667f46 100644 --- a/src/www/system_advanced_network.php +++ b/src/www/system_advanced_network.php @@ -174,6 +174,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $pconfig['disablechecksumoffloading'] = isset($config['system']['disablechecksumoffloading']); $pconfig['disablesegmentationoffloading'] = isset($config['system']['disablesegmentationoffloading']); $pconfig['disablelargereceiveoffloading'] = isset($config['system']['disablelargereceiveoffloading']); + $pconfig['dhcp6_norelease'] = isset($config['system']['dhcp6_norelease']); + $pconfig['dhcp6_debug'] = isset($config['system']['dhcp6_debug']); $pconfig['ipv6duid'] = $config['system']['ipv6duid']; if (!isset($config['system']['disablevlanhwfilter'])) { $pconfig['disablevlanhwfilter'] = '0'; @@ -224,6 +226,18 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { unset($config['system']['disablevlanhwfilter']); } + if (!empty($pconfig['dhcp6_norelease'])) { + $config['system']['dhcp6_norelease'] = $pconfig['dhcp6_norelease']; + } elseif (isset($config['system']['dhcp6_norelease'])) { + unset($config['system']['dhcp6_norelease']); + } + + if (!empty($pconfig['dhcp6_debug'])) { + $config['system']['dhcp6_debug'] = $pconfig['dhcp6_debug']; + } elseif (isset($config['system']['dhcp6_debug'])) { + unset($config['system']['dhcp6_debug']); + } + if (!empty($pconfig['ipv6duid'])) { $config['system']['ipv6duid'] = format_duid($pconfig['ipv6duid']); } elseif (isset($config['system']['ipv6duid'])) { @@ -260,8 +274,8 @@ include("head.inc"); } ?>
-
-
+ +
@@ -329,6 +343,32 @@ include("head.inc"); +
+
+
+ + + + + + + + + + + + +
+ /> + +
+ /> + +
@@ -364,8 +404,8 @@ include("head.inc");
- -
+
+