Services / DHCPv4 - Allow for ARM architectures in DHCP Network Boot options (#5361)

This commit is contained in:
Keith Cirkel 2021-11-30 19:11:05 +00:00 committed by GitHub
parent 9f3b6e873a
commit 130b274b6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View File

@ -1078,6 +1078,8 @@ EOD;
if (!empty($dhcpifconf['nextserver'])) {
$dhcpdconf .= " next-server {$dhcpifconf['nextserver']};\n";
}
$arm64 = $dhcpifconf['filename64arm'] ?? $dhcpifconf['filename'];
$arm32 = $dhcpifconf['filename32arm'] ?? $dhcpifconf['filename'];
if (!empty($dhcpifconf['filename']) && !empty($dhcpifconf['filename32']) && !empty($dhcpifconf['filename64'])) {
$dhcpdconf .= " if option arch = 00:06 {\n";
$dhcpdconf .= " filename \"{$dhcpifconf['filename32']}\";\n";
@ -1085,6 +1087,10 @@ EOD;
$dhcpdconf .= " filename \"{$dhcpifconf['filename64']}\";\n";
$dhcpdconf .= " } else if option arch = 00:09 {\n";
$dhcpdconf .= " filename \"{$dhcpifconf['filename64']}\";\n";
$dhcpdconf .= " } else if option arch = 00:0a {\n";
$dhcpdconf .= " filename \"{$arm32}\";\n";
$dhcpdconf .= " } else if option arch = 00:0b {\n";
$dhcpdconf .= " filename \"{$arm64}\";\n";
$dhcpdconf .= " } else {\n";
$dhcpdconf .= " filename \"{$dhcpifconf['filename']}\";\n";
$dhcpdconf .= " }\n\n";

View File

@ -58,7 +58,8 @@ $config_copy_fieldsnames = array('enable', 'staticarp', 'failover_peerip', 'fail
'defaultleasetime', 'maxleasetime', 'gateway', 'domain', 'domainsearchlist', 'denyunknown','ignoreuids', 'ddnsdomain',
'ddnsdomainprimary', 'ddnsdomainkeyname', 'ddnsdomainkey', 'ddnsdomainalgorithm', 'ddnsupdate', 'mac_allow',
'mac_deny', 'tftp', 'bootfilename', 'ldap', 'netboot', 'nextserver', 'filename', 'filename32', 'filename64',
'rootpath', 'netmask', 'numberoptions', 'interface_mtu', 'wpad', 'omapi', 'omapiport', 'omapialgorithm', 'omapikey', 'minsecs');
'filename32arm', 'filename64arm', 'rootpath', 'netmask', 'numberoptions', 'interface_mtu', 'wpad', 'omapi', 'omapiport',
'omapialgorithm', 'omapikey', 'minsecs');
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
// handle identifiers and action
@ -983,6 +984,10 @@ include("head.inc");
<input name="filename32" type="text" id="filename32" value="<?=$pconfig['filename32'];?>" /><br />
<?=gettext('Set UEFI 64bit filename');?>
<input name="filename64" type="text" id="filename64" value="<?=$pconfig['filename64'];?>" /><br />
<?=gettext('Set UEFI ARM 32bit filename');?>
<input name="filename32arm" type="text" id="filename32arm" value="<?=$pconfig['filename32arm'];?>" /><br />
<?=gettext('Set UEFI ARM 64bit filename');?>
<input name="filename64arm" type="text" id="filename64arm" value="<?=$pconfig['filename64arm'];?>" /><br />
<?=gettext("Note: You need both a filename and a boot server configured for this to work!");?><br/>
<?=gettext("You will need all three filenames and a boot server configured for UEFI to work!");?>
<br/><br/>