summaryrefslogtreecommitdiffstats
path: root/modules-available
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available')
-rw-r--r--modules-available/serversetup-bwlp-ipxe/api.inc.php7
1 files changed, 6 insertions, 1 deletions
diff --git a/modules-available/serversetup-bwlp-ipxe/api.inc.php b/modules-available/serversetup-bwlp-ipxe/api.inc.php
index dc78f481..2a6460d5 100644
--- a/modules-available/serversetup-bwlp-ipxe/api.inc.php
+++ b/modules-available/serversetup-bwlp-ipxe/api.inc.php
@@ -41,12 +41,17 @@
$menu = IPxeMenu::forClient($builder->clientIp(), $builder->uuid());
}
$data = null;
- if ($menu->itemCount() === 1 && $menu->timeoutMs() === 0) {
+ // In exam mode, either skip menu if only one entry, or shorten timeout to 1 second
+ $isExamMode = Module::isAvailable('exams')
+ && Exams::isInExamMode([Location::getFromIpAndUuid($builder->clientIp(), $builder->uuid())]);
+ if ($menu->itemCount() === 1 && ($menu->timeoutMs === 0 || $isExamMode)) {
// One entry, no timeout -- direct boot
$entry = $menu->defaultEntry();
if ($entry !== null) {
$data = $builder->getMenuEntry($entry);
}
+ } elseif ($isExamMode) {
+ $menu->timeoutMs = 1000;
}
if ($data === null) {
// Show menu