X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fdevice-handler.c;h=729ed2c0f52ae76f9cbc7474cd803ed773bab3a6;hp=cf379e78ca7f7ecc1f52adbca0fedc2e22903fa8;hb=c87691826e75cd036c160686c83998b6d06c6e50;hpb=7f5a99f015cb1f48f73acb921beced6daf9fa15d diff --git a/discover/device-handler.c b/discover/device-handler.c index cf379e7..729ed2c 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -534,6 +534,7 @@ static void _device_handler_vstatus(struct device_handler *handler, status.type = type; status.message = talloc_vasprintf(handler, fmt, ap); status.backlog = false; + status.boot_active = false; device_handler_status(handler, &status); @@ -1278,6 +1279,7 @@ static int device_handler_requery_timeout_fn(void *data) struct requery_data *rqd = data; struct device_handler *handler; struct discover_device *device; + bool autoboot; handler = rqd->handler; device = rqd->device; @@ -1300,9 +1302,14 @@ static int device_handler_requery_timeout_fn(void *data) talloc_free(opt); } + /* Track whether autoboot was enabled, if we cancel a default option + * it will be switched off. + */ + autoboot = handler->autoboot_enabled; + list_for_each_entry_safe(&device->boot_options, opt, tmp, list) { if (opt == handler->default_boot_option) { - pb_log("Default option %s cancelled since device is being requeried", + pb_log("Default option %s cancelled since device is being requeried\n", opt->option->name); device_handler_cancel_default(handler); } @@ -1310,6 +1317,8 @@ static int device_handler_requery_timeout_fn(void *data) talloc_free(opt); } + handler->autoboot_enabled = autoboot; + discover_server_notify_device_remove(handler->server, device->device); device->notified = false; @@ -1492,8 +1501,11 @@ void device_handler_update_config(struct device_handler *handler, int rc; rc = config_set(config); - if (rc) + if (rc) { + device_handler_status_err(handler, + "Failed to update configuration!"); return; + } discover_server_notify_config(handler->server, config); device_handler_update_lang(config->lang);