diff --git a/src/etc/inc/plugins.inc.d/dhcpd.inc b/src/etc/inc/plugins.inc.d/dhcpd.inc index f243b5527..01b96ddb4 100644 --- a/src/etc/inc/plugins.inc.d/dhcpd.inc +++ b/src/etc/inc/plugins.inc.d/dhcpd.inc @@ -1091,6 +1091,13 @@ EOD; '00:0b' => 'filename64arm', ]; + if (!empty($dhcpifconf['filenameipxe'])) { + $dhcpdconf .= " if exists user-class and option user-class = \"iPXE\" {\n"; + $dhcpdconf .= " filename \"{$dhcpifconf['filenameipxe']}\";\n"; + $dhcpdconf .= " }"; + $conditional = true; + } + foreach ($filemap as $arch => $file) { if (empty($dhcpifconf[$file])) { continue; @@ -1103,6 +1110,7 @@ EOD; $conditional = true; } + if ($conditional) { if (!empty($dhcpifconf['filename'])) { $dhcpdconf .= " else {\n"; diff --git a/src/www/services_dhcp.php b/src/www/services_dhcp.php index 21c7403a7..39de82b70 100644 --- a/src/www/services_dhcp.php +++ b/src/www/services_dhcp.php @@ -58,7 +58,7 @@ $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', - 'filename32arm', 'filename64arm', 'rootpath', 'netmask', 'numberoptions', 'interface_mtu', 'wpad', 'omapi', 'omapiport', + 'filename32arm', 'filename64arm', 'filenameipxe', 'rootpath', 'netmask', 'numberoptions', 'interface_mtu', 'wpad', 'omapi', 'omapiport', 'omapialgorithm', 'omapikey', 'minsecs'); if ($_SERVER['REQUEST_METHOD'] === 'GET') { @@ -988,8 +988,10 @@ include("head.inc");

+ +

-

+