Project

General

Profile

« Previous | Next » 

Revision 534d7d69

Added by Joeri Capens over 7 years ago

Add DHCP Dynamic DNS key algorithm choice. Implements #6621

View differences:

src/usr/local/www/services_dhcpv6.php
154 154
	$pconfig['ddnsdomain'] = $config['dhcpdv6'][$if]['ddnsdomain'];
155 155
	$pconfig['ddnsdomainprimary'] = $config['dhcpdv6'][$if]['ddnsdomainprimary'];
156 156
	$pconfig['ddnsdomainkeyname'] = $config['dhcpdv6'][$if]['ddnsdomainkeyname'];
157
	$pconfig['ddnsdomainkeyalgorithm'] = $config['dhcpdv6'][$if]['ddnsdomainkeyalgorithm'];
157 158
	$pconfig['ddnsdomainkey'] = $config['dhcpdv6'][$if]['ddnsdomainkey'];
158 159
	$pconfig['ddnsupdate'] = isset($config['dhcpdv6'][$if]['ddnsupdate']);
159 160
	$pconfig['ddnsforcehostname'] = isset($config['dhcpdv6'][$if]['ddnsforcehostname']);
......
316 317
	if ($_POST['maxtime'] && (!is_numeric($_POST['maxtime']) || ($_POST['maxtime'] < 60) || ($_POST['maxtime'] <= $_POST['deftime']))) {
317 318
		$input_errors[] = gettext("The maximum lease time must be at least 60 seconds and higher than the default lease time.");
318 319
	}
319
	if (($_POST['ddnsdomain'] && !is_domain($_POST['ddnsdomain']))) {
320
	if ($_POST['ddnsupdate'] && !is_domain($_POST['ddnsdomain'])) {
320 321
		$input_errors[] = gettext("A valid domain name must be specified for the dynamic DNS registration.");
321 322
	}
322
	if (($_POST['ddnsdomain'] && !is_ipaddrv4($_POST['ddnsdomainprimary']))) {
323
	if ($_POST['ddnsupdate'] && !is_ipaddrv4($_POST['ddnsdomainprimary'])) {
323 324
		$input_errors[] = gettext("A valid primary domain name server IPv4 address must be specified for the dynamic domain name.");
324 325
	}
325
	if (($_POST['ddnsdomainkey'] && !$_POST['ddnsdomainkeyname']) ||
326
		($_POST['ddnsdomainkeyname'] && !$_POST['ddnsdomainkey'])) {
327
		$input_errors[] = gettext("Both a valid domain key and key name must be specified.");
326
	if ($_POST['ddnsupdate'] && (!$_POST['ddnsdomainkeyname'] || !$_POST['ddnsdomainkeyalgorithm'] || !$_POST['ddnsdomainkey'])) {
327
		$input_errors[] = gettext("A valid domain key name, algorithm and secret must be specified.");
328 328
	}
329 329
	if ($_POST['domainsearchlist']) {
330
		$domain_array=preg_split("/[ ;]+/", $_POST['domainsearchlist']);
330
		$domain_array = preg_split("/[ ;]+/", $_POST['domainsearchlist']);
331 331
		foreach ($domain_array as $curdomain) {
332 332
			if (!is_domain($curdomain)) {
333 333
				$input_errors[] = gettext("A valid domain search list must be specified.");
......
453 453
		$config['dhcpdv6'][$if]['ddnsdomain'] = $_POST['ddnsdomain'];
454 454
		$config['dhcpdv6'][$if]['ddnsdomainprimary'] = $_POST['ddnsdomainprimary'];
455 455
		$config['dhcpdv6'][$if]['ddnsdomainkeyname'] = $_POST['ddnsdomainkeyname'];
456
		$config['dhcpdv6'][$if]['ddnsdomainkeyalgorithm'] = $_POST['ddnsdomainkeyalgorithm'];
456 457
		$config['dhcpdv6'][$if]['ddnsdomainkey'] = $_POST['ddnsdomainkey'];
457 458
		$config['dhcpdv6'][$if]['ddnsupdate'] = ($_POST['ddnsupdate']) ? true : false;
458 459
		$config['dhcpdv6'][$if]['ddnsforcehostname'] = ($_POST['ddnsforcehostname']) ? true : false;
......
809 810
	$pconfig['ddnsdomainkeyname']
810 811
))->setHelp('Enter the dynamic DNS domain key name which will be used to register client names in the DNS server.');
811 812

  
813
$section->addInput(new Form_Select(
814
	'ddnsdomainkeyalgorithm',
815
	'Key algorithm',
816
	$pconfig['ddnsdomainkeyalgorithm'],
817
	array(
818
		'hmac-md5' => 'HMAC-MD5 (legacy default)',
819
		'hmac-sha1' => 'HMAC-SHA1',
820
		'hmac-sha224' => 'HMAC-SHA224',
821
		'hmac-sha256' => 'HMAC-SHA256 (current bind9 default)',
822
		'hmac-sha384' => 'HMAC-SHA384',
823
		'hmac-sha512' => 'HMAC-SHA512 (most secure)',
824
	)
825
));
826

  
812 827
$section->addInput(new Form_Input(
813 828
	'ddnsdomainkey',
814 829
	'DDNS Domain Key secret',
......
1093 1108
			    empty($pconfig['ddnsdomain']) &&
1094 1109
			    empty($pconfig['ddnsdomainprimary']) &&
1095 1110
			    empty($pconfig['ddnsdomainkeyname']) &&
1111
			    empty($pconfig['ddnsdomainkeyalgorithm']) &&
1096 1112
			    empty($pconfig['ddnsdomainkey']) &&
1097 1113
			    (empty($pconfig['ddnsclientupdates']) || ($pconfig['ddnsclientupdates'] == "allow")) &&
1098 1114
			    !$pconfig['ddnsreverse']) {
......
1112 1128
		hideCheckbox('ddnsforcehostname', !showadvdns);
1113 1129
		hideInput('ddnsdomainprimary', !showadvdns);
1114 1130
		hideInput('ddnsdomainkeyname', !showadvdns);
1131
		hideInput('ddnsdomainkeyalgorithm', !showadvdns);
1115 1132
		hideInput('ddnsdomainkey', !showadvdns);
1116 1133
		hideInput('ddnsclientupdates', !showadvdns);
1117 1134
		hideCheckbox('ddnsreverse', !showadvdns);

Also available in: Unified diff