]> git.ozlabs.org Git - petitboot/blobdiff - discover/device-handler.c
discover/device-handler: Disable safe mode warning on reinit
[petitboot] / discover / device-handler.c
index 3cf7edff082d9f6f880ccdd19c18fa698490cbce..efeb6264d7cc5f8d7c031f6ed9509deeaab5c6c7 100644 (file)
@@ -18,7 +18,9 @@
 #include <process/process.h>
 #include <url/url.h>
 #include <i18n/i18n.h>
+#include <pb-config/pb-config.h>
 
+#include <sys/sysmacros.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netdb.h>
@@ -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);
 }