From 263e31240d97484619f55630f625257dc874c5d0 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Wed, 8 May 2013 21:09:05 +0800 Subject: [PATCH] discover: handle boot_option->device_id entirely within handler No need for parsers to populate (or forget to populate, in the case of most parsers) opt->device_id, as we should do it on finalise. Signed-off-by: Jeremy Kerr --- discover/device-handler.c | 3 +++ discover/event-parser.c | 1 - discover/pxe-parser.c | 3 +-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/discover/device-handler.c b/discover/device-handler.c index 0fc6d75..43171eb 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -75,6 +75,7 @@ static void boot_option_finalise(struct discover_boot_option *opt) assert(!opt->option->boot_image_file); assert(!opt->option->initrd_file); assert(!opt->option->icon_file); + assert(!opt->option->device_id); if (opt->boot_image) opt->option->boot_image_file = opt->boot_image->url->full; @@ -82,6 +83,8 @@ static void boot_option_finalise(struct discover_boot_option *opt) opt->option->initrd_file = opt->initrd->url->full; if (opt->icon) opt->option->icon_file = opt->icon->url->full; + + opt->option->device_id = opt->device->device->id; } static void process_boot_option_queue(struct device_handler *handler) diff --git a/discover/event-parser.c b/discover/event-parser.c index 45d7b3a..240f897 100644 --- a/discover/event-parser.c +++ b/discover/event-parser.c @@ -64,7 +64,6 @@ int parse_user_event(struct discover_context *ctx, struct event *event) } opt->id = talloc_asprintf(opt, "%s#%s", dev->id, p); - opt->device_id = talloc_strdup(opt, dev->id); opt->name = talloc_strdup(opt, p); d_opt->boot_image = user_event_resource(d_opt, event, "image"); diff --git a/discover/pxe-parser.c b/discover/pxe-parser.c index 662716a..c300b69 100644 --- a/discover/pxe-parser.c +++ b/discover/pxe-parser.c @@ -28,10 +28,9 @@ static void pxe_process_pair(struct conf_context *ctx, opt = discover_boot_option_create(ctx->dc, ctx->dc->device); ctx->parser_info = opt; - opt->option->device_id = ctx->dc->device->device->id; opt->option->name = talloc_strdup(opt, value); opt->option->id = talloc_asprintf(opt, "%s@%p", - opt->option->device_id, opt); + ctx->dc->device->device->id, opt); return; } -- 2.39.2