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_dhcp.php
183 183
	$pconfig['ddnsdomain'] = $dhcpdconf['ddnsdomain'];
184 184
	$pconfig['ddnsdomainprimary'] = $dhcpdconf['ddnsdomainprimary'];
185 185
	$pconfig['ddnsdomainkeyname'] = $dhcpdconf['ddnsdomainkeyname'];
186
	$pconfig['ddnsdomainkeyalgorithm'] = $dhcpdconf['ddnsdomainkeyalgorithm'];
186 187
	$pconfig['ddnsdomainkey'] = $dhcpdconf['ddnsdomainkey'];
187 188
	$pconfig['ddnsupdate'] = isset($dhcpdconf['ddnsupdate']);
188 189
	$pconfig['ddnsforcehostname'] = isset($dhcpdconf['ddnsforcehostname']);
......
313 314
	if ($_POST['maxtime'] && (!is_numeric($_POST['maxtime']) || ($_POST['maxtime'] < 60) || ($_POST['maxtime'] <= $_POST['deftime']))) {
314 315
		$input_errors[] = gettext("The maximum lease time must be at least 60 seconds and higher than the default lease time.");
315 316
	}
316
	if (($_POST['ddnsdomain'] && !is_domain($_POST['ddnsdomain']))) {
317
	if ($_POST['ddnsupdate'] && !is_domain($_POST['ddnsdomain'])) {
317 318
		$input_errors[] = gettext("A valid domain name must be specified for the dynamic DNS registration.");
318 319
	}
319
	if (($_POST['ddnsdomain'] && !is_ipaddrv4($_POST['ddnsdomainprimary']))) {
320
	if ($_POST['ddnsupdate'] && !is_ipaddrv4($_POST['ddnsdomainprimary'])) {
320 321
		$input_errors[] = gettext("A valid primary domain name server IP address must be specified for the dynamic domain name.");
321 322
	}
322
	if (($_POST['ddnsdomainkey'] && !$_POST['ddnsdomainkeyname']) ||
323
		($_POST['ddnsdomainkeyname'] && !$_POST['ddnsdomainkey'])) {
324
		$input_errors[] = gettext("Both a valid domain key and key name must be specified.");
323
	if ($_POST['ddnsupdate'] && (!$_POST['ddnsdomainkeyname'] || !$_POST['ddnsdomainkeyalgorithm'] || !$_POST['ddnsdomainkey'])) {
324
		$input_errors[] = gettext("A valid domain key name, algorithm and secret must be specified.");
325 325
	}
326 326
	if ($_POST['domainsearchlist']) {
327 327
		$domain_array = preg_split("/[ ;]+/", $_POST['domainsearchlist']);
......
579 579
		$dhcpdconf['ddnsdomain'] = $_POST['ddnsdomain'];
580 580
		$dhcpdconf['ddnsdomainprimary'] = $_POST['ddnsdomainprimary'];
581 581
		$dhcpdconf['ddnsdomainkeyname'] = $_POST['ddnsdomainkeyname'];
582
		$dhcpdconf['ddnsdomainkeyalgorithm'] = $_POST['ddnsdomainkeyalgorithm'];
582 583
		$dhcpdconf['ddnsdomainkey'] = $_POST['ddnsdomainkey'];
583 584
		$dhcpdconf['ddnsupdate'] = ($_POST['ddnsupdate']) ? true : false;
584 585
		$dhcpdconf['ddnsforcehostname'] = ($_POST['ddnsforcehostname']) ? true : false;
......
1124 1125
	$pconfig['ddnsdomainkeyname']
1125 1126
))->setHelp('Dynamic DNS domain key name which will be used to register client names in the DNS server.');
1126 1127

  
1128
$section->addInput(new Form_Select(
1129
	'ddnsdomainkeyalgorithm',
1130
	'Key algorithm',
1131
	$pconfig['ddnsdomainkeyalgorithm'],
1132
	array(
1133
		'hmac-md5' => 'HMAC-MD5 (legacy default)',
1134
		'hmac-sha1' => 'HMAC-SHA1',
1135
		'hmac-sha224' => 'HMAC-SHA224',
1136
		'hmac-sha256' => 'HMAC-SHA256 (current bind9 default)',
1137
		'hmac-sha384' => 'HMAC-SHA384',
1138
		'hmac-sha512' => 'HMAC-SHA512 (most secure)',
1139
	)
1140
));
1141

  
1127 1142
$section->addInput(new Form_Input(
1128 1143
	'ddnsdomainkey',
1129 1144
	'DNS Domain key secret',
......
1522 1537
		if (ispageload) {
1523 1538
<?php
1524 1539
			if (!$pconfig['ddnsupdate'] && !$pconfig['ddnsforcehostname'] && empty($pconfig['ddnsdomain']) && empty($pconfig['ddnsdomainprimary']) &&
1525
			    empty($pconfig['ddnsdomainkeyname']) && empty($pconfig['ddnsdomainkey'])) {
1540
			    empty($pconfig['ddnsdomainkeyname']) && empty($pconfig['ddnsdomainkeyalgorithm']) && empty($pconfig['ddnsdomainkey'])) {
1526 1541
				$showadv = false;
1527 1542
			} else {
1528 1543
				$showadv = true;
......
1539 1554
		hideCheckbox('ddnsforcehostname', !showadvdns);
1540 1555
		hideInput('ddnsdomainprimary', !showadvdns);
1541 1556
		hideInput('ddnsdomainkeyname', !showadvdns);
1557
		hideInput('ddnsdomainkeyalgorithm', !showadvdns);
1542 1558
		hideInput('ddnsdomainkey', !showadvdns);
1543 1559

  
1544 1560
		if (showadvdns) {

Also available in: Unified diff