From d683929fc66ddb9524cb79c6da890f6c099aaa18 Mon Sep 17 00:00:00 2001 From: Maurice Date: Fri, 22 Nov 2019 10:23:16 +0100 Subject: [PATCH] DHCPv6, replace domain name option with domain search list option (#3824) * DHCPv6, fix Domain Search List bugs Remove "domain-name" option (which doesn't exist in DHCPv6) from dhcpdv6.conf. For the global option (system domain) and static mappings, replace with "dhcp6.domain-search" option (already exists as an interface option). * Remove domain name option The domain name option doesn't exist in DHCPv6. * Replace domain name with domain search list option The domain name option doesn't exist in DHCPv6. * fix dhcp6.domain-search option for static mappings --- src/etc/inc/plugins.inc.d/dhcpd.inc | 9 +++------ src/www/services_dhcpv6.php | 18 +++--------------- src/www/services_dhcpv6_edit.php | 21 +++++++++++++++------ 3 files changed, 21 insertions(+), 27 deletions(-) diff --git a/src/etc/inc/plugins.inc.d/dhcpd.inc b/src/etc/inc/plugins.inc.d/dhcpd.inc index 924c1e92c..c772212a7 100644 --- a/src/etc/inc/plugins.inc.d/dhcpd.inc +++ b/src/etc/inc/plugins.inc.d/dhcpd.inc @@ -1362,7 +1362,7 @@ function dhcpd_dhcp6_configure($verbose = false, $blacklist = array()) } $dhcpdv6conf = << - - - - - - - diff --git a/src/www/services_dhcpv6_edit.php b/src/www/services_dhcpv6_edit.php index de750affa..9239a8fbe 100644 --- a/src/www/services_dhcpv6_edit.php +++ b/src/www/services_dhcpv6_edit.php @@ -45,7 +45,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { // read form data $pconfig = array(); - $config_copy_fieldnames = array('duid', 'hostname', 'ipaddrv6', 'filename' ,'rootpath' ,'descr', 'domain'); + $config_copy_fieldnames = array('duid', 'hostname', 'ipaddrv6', 'filename' ,'rootpath' ,'descr', 'domainsearchlist'); foreach ($config_copy_fieldnames as $fieldname) { if (isset($if) && isset($id) && isset($config['dhcpdv6'][$if]['staticmap'][$id][$fieldname])) { $pconfig[$fieldname] = $config['dhcpdv6'][$if]['staticmap'][$id][$fieldname]; @@ -88,6 +88,15 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { if (empty($pconfig['duid']) || preg_match('/^([a-fA-F0-9]{2}[:])*([a-fA-F0-9]{2}){1}$/', $pconfig['duid']) !== 1) { $input_errors[] = gettext("A valid DUID Identifier must be specified."); } + if (!empty($pconfig['domainsearchlist'])) { + $domain_array=preg_split("/[ ;]+/",$pconfig['domainsearchlist']); + foreach ($domain_array as $curdomain) { + if (!is_domain($curdomain)) { + $input_errors[] = gettext("A valid domain search list must be specified."); + break; + } + } + } /* check for overlaps */ $a_maps = &config_read_array('dhcpdv6', $if, 'staticmap'); @@ -102,7 +111,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { } if (count($input_errors) == 0) { $mapent = array(); - $config_copy_fieldnames = array('duid', 'ipaddrv6', 'hostname', 'descr', 'filename', 'rootpath', 'domain'); + $config_copy_fieldnames = array('duid', 'ipaddrv6', 'hostname', 'descr', 'filename', 'rootpath', 'domainsearchlist'); foreach ($config_copy_fieldnames as $fieldname) { if (!empty($pconfig[$fieldname])) { $mapent[$fieldname] = $pconfig[$fieldname]; @@ -193,11 +202,11 @@ include("head.inc"); - + - -