X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=discover%2Fdevice-handler.c;h=efeb6264d7cc5f8d7c031f6ed9509deeaab5c6c7;hb=f1e6b8daf970463b32eff33da75e14b3122a43a4;hp=3cf7edff082d9f6f880ccdd19c18fa698490cbce;hpb=d94bb8c48f42678a5f1cf0041429b82aa1938540;p=petitboot diff --git a/discover/device-handler.c b/discover/device-handler.c index 3cf7edf..efeb626 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -18,7 +18,9 @@ #include #include #include +#include +#include #include #include #include @@ -321,7 +323,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); @@ -348,6 +350,7 @@ void device_handler_reinit(struct device_handler *handler) { struct discover_boot_option *opt, *tmp; struct ramdisk_device *ramdisk; + struct config *config; unsigned int i; device_handler_cancel_default(handler); @@ -383,6 +386,14 @@ void device_handler_reinit(struct device_handler *handler) handler->ramdisks = NULL; handler->n_ramdisks = 0; + /* If the safe mode warning was active disable it now */ + if (config_get()->safe_mode) { + config = config_copy(handler, config_get()); + config->safe_mode = false; + config_set(config); + discover_server_notify_config(handler->server, config); + } + device_handler_reinit_sources(handler); }