From 58a185aede55efe71cabc337938ed05f456eecea Mon Sep 17 00:00:00 2001 From: marjohn56 Date: Thu, 27 Jul 2017 19:59:11 +0100 Subject: dhcp6c Advanced Config prefix interface Currently, when using dhcp6c advanced configuration the prefix interface is WAN, this is not very useful! The changes here allow the user to select the interface that the PD will be applied on.. --- src/etc/inc/interfaces.inc | 5 +++-- src/usr/local/www/interfaces.php | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 0787110..003738e 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -4407,10 +4407,11 @@ function DHCP6_Config_File_Advanced($interface, $wancfg, $wanif) { } $id_assoc_statement_prefix .= ";"; } - + + $realif = get_real_interface($wancfg['adv_dhcp6_prefix_selected_interface']); if (is_numeric($wancfg['adv_dhcp6_prefix_interface_statement_sla_id'])) { $id_assoc_statement_prefix .= "\n\tprefix-interface"; - $id_assoc_statement_prefix .= " {$wanif}"; + $id_assoc_statement_prefix .= " {$realif}"; $id_assoc_statement_prefix .= " {\n"; $id_assoc_statement_prefix .= "\t\tsla-id {$wancfg['adv_dhcp6_prefix_interface_statement_sla_id']};\n"; if (($wancfg['adv_dhcp6_prefix_interface_statement_sla_len'] >= 0) && diff --git a/src/usr/local/www/interfaces.php b/src/usr/local/www/interfaces.php index c8b034e..a5e1c14 100755 --- a/src/usr/local/www/interfaces.php +++ b/src/usr/local/www/interfaces.php @@ -90,6 +90,7 @@ if (!is_array($config['gateways']['gateway_item'])) { $a_gateways = &$config['gateways']['gateway_item']; +$interfaces = get_configured_interface_with_descr(); $wancfg = &$config['interfaces'][$if]; $old_wancfg = $wancfg; $old_wancfg['realif'] = get_real_interface($if); @@ -228,6 +229,7 @@ $pconfig['adv_dhcp6_id_assoc_statement_prefix_vltime'] = $wancfg['adv_dhcp6_id_a $pconfig['adv_dhcp6_prefix_interface_statement_sla_id'] = $wancfg['adv_dhcp6_prefix_interface_statement_sla_id']; $pconfig['adv_dhcp6_prefix_interface_statement_sla_len'] = $wancfg['adv_dhcp6_prefix_interface_statement_sla_len']; +$pconfig['adv_dhcp6_prefix_selected_interface'] = $wancfg['adv_dhcp6_prefix_selected_interface']; $pconfig['adv_dhcp6_authentication_statement_authname'] = $wancfg['adv_dhcp6_authentication_statement_authname']; $pconfig['adv_dhcp6_authentication_statement_protocol'] = $wancfg['adv_dhcp6_authentication_statement_protocol']; @@ -1093,6 +1095,7 @@ if ($_POST['apply']) { unset($wancfg['adv_dhcp6_prefix_interface_statement_sla_id']); unset($wancfg['adv_dhcp6_prefix_interface_statement_sla_len']); + unset($wancfg['adv_dhcp6_prefix_selected_interface']); unset($wancfg['adv_dhcp6_authentication_statement_authname']); unset($wancfg['adv_dhcp6_authentication_statement_protocol']); @@ -1356,7 +1359,9 @@ if ($_POST['apply']) { if (is_numericint($_POST['adv_dhcp6_prefix_interface_statement_sla_len'])) { $wancfg['adv_dhcp6_prefix_interface_statement_sla_len'] = $_POST['adv_dhcp6_prefix_interface_statement_sla_len']; } - + if (!empty($_POST['adv_dhcp6_prefix_selected_interface'])) { + $wancfg['adv_dhcp6_prefix_selected_interface'] = $_POST['adv_dhcp6_prefix_selected_interface']; + } if (!empty($_POST['adv_dhcp6_authentication_statement_authname'])) { $wancfg['adv_dhcp6_authentication_statement_authname'] = $_POST['adv_dhcp6_authentication_statement_authname']; } @@ -2377,6 +2382,14 @@ $group->add(new Form_Input( $section->add($group); +$group = new Form_Group('Select prefix interface'); +$section->addInput(new Form_Select( + 'adv_dhcp6_prefix_selected_interface', + 'Prefix Interface', + $pconfig['adv_dhcp6_prefix_selected_interface'], + $interfaces +))->setHelp('Select the interface on which to apply the prefix delegation.'); + $group = new Form_Group('Authentication statement'); $group->add(new Form_Input( -- cgit v1.1