Feature #6621 ยป ddns_algortithm-choice.patch
src/etc/inc/services.inc | ||
---|---|---|
1169 | 1169 |
if ($need_ddns_updates) { |
1170 | 1170 |
$newzone['dns-servers'] = array($dhcpifconf['ddnsdomainprimary']); |
1171 | 1171 |
$newzone['ddnsdomainkeyname'] = $dhcpifconf['ddnsdomainkeyname']; |
1172 |
$newzone['ddnsdomainkeyalgorithm'] = $dhcpifconf['ddnsdomainkeyalgorithm']; |
|
1172 | 1173 |
$newzone['ddnsdomainkey'] = $dhcpifconf['ddnsdomainkey']; |
1173 | 1174 |
$dhcpdconf .= dhcpdkey($dhcpifconf); |
1174 | 1175 |
} |
... | ... | |
1215 | 1216 | |
1216 | 1217 |
function dhcpdkey($dhcpifconf) { |
1217 | 1218 |
$dhcpdconf = ""; |
1218 |
if ($dhcpifconf['ddnsdomainkeyname'] <> "" && $dhcpifconf['ddnsdomainkey'] <> "") { |
|
1219 |
if ($dhcpifconf['ddnsdomainkeyname'] <> "" && $dhcpifconf['ddnsdomainkeyalgorithm'] <> "" && $dhcpifconf['ddnsdomainkey'] <> "") {
|
|
1219 | 1220 |
$dhcpdconf .= "key {$dhcpifconf['ddnsdomainkeyname']} {\n"; |
1220 |
$dhcpdconf .= " algorithm hmac-md5;\n";
|
|
1221 |
$dhcpdconf .= " algorithm {$dhcpifconf['ddnsdomainkeyalgorithm']};\n";
|
|
1221 | 1222 |
$dhcpdconf .= " secret {$dhcpifconf['ddnsdomainkey']};\n"; |
1222 | 1223 |
$dhcpdconf .= "}\n"; |
1223 | 1224 |
} |
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) { |
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); |