X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=discover%2Fdevice-handler.c;h=54a19865d2bb2e061e179afcdb9d8b6a84287b30;hb=e2c92865481a5fb043c03c0cde625a96ca608699;hp=c31fceaf5a11b1ac22c28f50ad530866f4b7f23e;hpb=83a587b79e9a5a5279f1c7a26918fc8c08523a7f;p=petitboot diff --git a/discover/device-handler.c b/discover/device-handler.c index c31fcea..54a1986 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -613,6 +613,7 @@ static bool __attribute__((used)) boot_option_is_resolved( return resource_is_resolved(opt->boot_image) && resource_is_resolved(opt->initrd) && resource_is_resolved(opt->dtb) && + resource_is_resolved(opt->args_sig_file) && resource_is_resolved(opt->icon); } @@ -638,6 +639,8 @@ static bool boot_option_resolve(struct discover_boot_option *opt, return resource_resolve(opt->boot_image, "boot_image", opt, handler) && resource_resolve(opt->initrd, "initrd", opt, handler) && resource_resolve(opt->dtb, "dtb", opt, handler) && + resource_resolve(opt->args_sig_file, "args_sig_file", opt, + handler) && resource_resolve(opt->icon, "icon", opt, handler); } @@ -652,6 +655,7 @@ static void boot_option_finalise(struct device_handler *handler, assert(!opt->option->dtb_file); assert(!opt->option->icon_file); assert(!opt->option->device_id); + assert(!opt->option->args_sig_file); if (opt->boot_image) opt->option->boot_image_file = opt->boot_image->url->full; @@ -661,6 +665,8 @@ static void boot_option_finalise(struct device_handler *handler, opt->option->dtb_file = opt->dtb->url->full; if (opt->icon) opt->option->icon_file = opt->icon->url->full; + if (opt->args_sig_file) + opt->option->args_sig_file = opt->args_sig_file->url->full; opt->option->device_id = opt->device->device->id; @@ -894,6 +900,7 @@ int device_handler_dhcp(struct device_handler *handler, /* create our context */ ctx = device_handler_discover_context_create(handler, dev); + talloc_steal(ctx, event); ctx->event = event; iterate_parsers(ctx); @@ -914,36 +921,6 @@ int device_handler_dhcp(struct device_handler *handler, return 0; } -/* incoming conf event */ -int device_handler_conf(struct device_handler *handler, - struct discover_device *dev, struct pb_url *url) -{ - struct discover_context *ctx; - struct boot_status *status; - - status = talloc_zero(handler, struct boot_status); - status->type = BOOT_STATUS_INFO; - status->message = talloc_asprintf(status, _("Processing user config")); - device_handler_boot_status(handler, status); - - /* create our context */ - ctx = device_handler_discover_context_create(handler, dev); - ctx->conf_url = url; - - iterate_parsers(ctx); - - device_handler_discover_context_commit(handler, ctx); - - status->message = talloc_asprintf(status, - _("Processing user config complete")); - device_handler_boot_status(handler, status); - - talloc_free(status); - talloc_unlink(handler, ctx); - - return 0; -} - static struct discover_boot_option *find_boot_option_by_id( struct device_handler *handler, const char *id) { @@ -1120,7 +1097,7 @@ void device_handler_process_url(struct device_handler *handler, event = talloc(handler, struct event); event->type = EVENT_TYPE_USER; - event->action = EVENT_ACTION_CONF; + event->action = EVENT_ACTION_URL; if (url[strlen(url) - 1] == '/') { event->params = talloc_array(event, struct param, 3); @@ -1165,6 +1142,7 @@ void device_handler_process_url(struct device_handler *handler, if (pb_url->scheme == pb_url_file) dev->device->type = DEVICE_TYPE_ANY; ctx = device_handler_discover_context_create(handler, dev); + talloc_steal(ctx, event); ctx->event = event; iterate_parsers(ctx);