From 130b274b6cc3fde73aa2bc4bdf99c4dad9efd078 Mon Sep 17 00:00:00 2001 From: Keith Cirkel Date: Tue, 30 Nov 2021 19:11:05 +0000 Subject: [PATCH] Services / DHCPv4 - Allow for ARM architectures in DHCP Network Boot options (#5361) --- src/etc/inc/plugins.inc.d/dhcpd.inc | 6 ++++++ src/www/services_dhcp.php | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/etc/inc/plugins.inc.d/dhcpd.inc b/src/etc/inc/plugins.inc.d/dhcpd.inc index 8bd6ffd81..842755bf7 100644 --- a/src/etc/inc/plugins.inc.d/dhcpd.inc +++ b/src/etc/inc/plugins.inc.d/dhcpd.inc @@ -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"; diff --git a/src/www/services_dhcp.php b/src/www/services_dhcp.php index 0912e8f63..17cf4bb25 100644 --- a/src/www/services_dhcp.php +++ b/src/www/services_dhcp.php @@ -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");

+ +
+ +