diff options
-rw-r--r-- | discover/device-handler.c | 2 | ||||
-rw-r--r-- | discover/platform-powerpc.c | 15 | ||||
-rw-r--r-- | lib/types/types.c | 12 | ||||
-rw-r--r-- | lib/types/types.h | 2 |
4 files changed, 16 insertions, 15 deletions
diff --git a/discover/device-handler.c b/discover/device-handler.c index 3cf7edf..5b7afd0 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -321,7 +321,7 @@ struct device_handler *device_handler_init(struct discover_server *server, handler->server = server; handler->waitset = waitset; handler->dry_run = dry_run; - handler->autoboot_enabled = config_get()->autoboot_enabled; + handler->autoboot_enabled = config_autoboot_active(config_get()); list_init(&handler->unresolved_boot_options); diff --git a/discover/platform-powerpc.c b/discover/platform-powerpc.c index e5c83a0..b5ad682 100644 --- a/discover/platform-powerpc.c +++ b/discover/platform-powerpc.c @@ -755,21 +755,8 @@ static void set_ipmi_bootdev(struct config *config, enum ipmi_bootdev bootdev, config->ipmi_bootdev = bootdev; config->ipmi_bootdev_persistent = persistent; - switch (bootdev) { - case IPMI_BOOTDEV_NONE: - case IPMI_BOOTDEV_DISK: - case IPMI_BOOTDEV_NETWORK: - case IPMI_BOOTDEV_CDROM: - default: - break; - case IPMI_BOOTDEV_SETUP: - config->autoboot_enabled = false; - break; - case IPMI_BOOTDEV_SAFE: - config->autoboot_enabled = false; + if (bootdev == IPMI_BOOTDEV_SAFE) config->safe_mode = true; - break; - } } static int read_bootdev_sysparam(const char *name, uint8_t *val) diff --git a/lib/types/types.c b/lib/types/types.c index 63045e1..d7f4ead 100644 --- a/lib/types/types.c +++ b/lib/types/types.c @@ -75,3 +75,15 @@ enum device_type find_device_type(const char *str) return DEVICE_TYPE_UNKNOWN; } + +bool config_autoboot_active(const struct config *config) +{ + enum ipmi_bootdev bootdev = config->ipmi_bootdev; + + if (!config->autoboot_enabled) + return false; + if (bootdev == IPMI_BOOTDEV_SETUP || bootdev == IPMI_BOOTDEV_SAFE) + return false; + + return true; +} diff --git a/lib/types/types.h b/lib/types/types.h index 13ff7fc..7f4ae1f 100644 --- a/lib/types/types.h +++ b/lib/types/types.h @@ -183,4 +183,6 @@ struct config { bool debug; }; +bool config_autoboot_active(const struct config *config); + #endif /* _TYPES_H */ |