discover: separate status-reporting function from boot() callback
authorJeremy Kerr <jk@ozlabs.org>
Wed, 7 Dec 2016 00:43:08 +0000 (11:43 +1100)
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>
Tue, 20 Dec 2016 04:04:26 +0000 (15:04 +1100)
Currently, the device_discover_boot_status function is both used for
internal status updates, as well as the callback passed to boot().

This change splits this into two functions; one for the latter and one
for the former. The latter just has a void * for its first argument, to
match the boot_status_fn type.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
discover/device-handler.c
discover/device-handler.h
discover/pxe-parser.c

index 2e96c2b4b7e35e026bfb0c1772bfff9fd319f3c8..81bdedbbb98b0c1c75ec3cb591d537571f2147b1 100644 (file)
@@ -410,13 +410,17 @@ void device_handler_remove(struct device_handler *handler,
        talloc_free(device);
 }
 
-void device_handler_boot_status(void *arg, struct status *status)
+void device_handler_status(struct device_handler *handler,
+               struct status *status)
 {
-       struct device_handler *handler = arg;
-
        discover_server_notify_boot_status(handler->server, status);
 }
 
+static void device_handler_boot_status_cb(void *arg, struct status *status)
+{
+       device_handler_status(arg, status);
+}
+
 static void countdown_status(struct device_handler *handler,
                struct discover_boot_option *opt, unsigned int sec)
 {
@@ -426,7 +430,7 @@ static void countdown_status(struct device_handler *handler,
        status.message = talloc_asprintf(handler,
                        _("Booting in %d sec: %s"), sec, opt->option->name);
 
-       discover_server_notify_boot_status(handler->server, &status);
+       device_handler_status(handler, &status);
 
        talloc_free(status.message);
 }
@@ -460,7 +464,7 @@ static int default_timeout(void *arg)
        platform_pre_boot();
 
        handler->pending_boot = boot(handler, handler->default_boot_option,
-                       NULL, handler->dry_run, device_handler_boot_status,
+                       NULL, handler->dry_run, device_handler_boot_status_cb,
                        handler);
        handler->pending_boot_is_default = true;
        return 0;
@@ -848,7 +852,7 @@ int device_handler_discover(struct device_handler *handler,
        status->message = talloc_asprintf(status, _("Processing %s device %s"),
                                device_type_display_name(dev->device->type),
                                dev->device->id);
-       device_handler_boot_status(handler, status);
+       device_handler_status(handler, status);
 
        process_boot_option_queue(handler);
 
@@ -876,7 +880,7 @@ out:
         */
        status->message = talloc_asprintf(status,_("Processing %s complete"),
                                dev->device->id);
-       device_handler_boot_status(handler, status);
+       device_handler_status(handler, status);
 
        talloc_free(status);
        talloc_unlink(handler, ctx);
@@ -899,7 +903,7 @@ int device_handler_dhcp(struct device_handler *handler,
         */
        status->message = talloc_asprintf(status, _("Processing dhcp event on %s"),
                                dev->device->id);
-       device_handler_boot_status(handler, status);
+       device_handler_status(handler, status);
 
        /* create our context */
        ctx = device_handler_discover_context_create(handler, dev);
@@ -916,7 +920,7 @@ int device_handler_dhcp(struct device_handler *handler,
         */
        status->message = talloc_asprintf(status,_("Processing %s complete"),
                                dev->device->id);
-       device_handler_boot_status(handler, status);
+       device_handler_status(handler, status);
 
        talloc_free(status);
        talloc_unlink(handler, ctx);
@@ -955,7 +959,7 @@ void device_handler_boot(struct device_handler *handler,
        platform_pre_boot();
 
        handler->pending_boot = boot(handler, opt, cmd, handler->dry_run,
-                       device_handler_boot_status, handler);
+                       device_handler_boot_status_cb, handler);
        handler->pending_boot_is_default = false;
 }
 
@@ -986,7 +990,7 @@ void device_handler_cancel_default(struct device_handler *handler)
        status.type = STATUS_INFO;
        status.message = _("Default boot cancelled");
 
-       discover_server_notify_boot_status(handler->server, &status);
+       device_handler_status(handler, &status);
 }
 
 void device_handler_update_config(struct device_handler *handler,
@@ -1152,7 +1156,7 @@ void device_handler_process_url(struct device_handler *handler,
        status->message = talloc_asprintf(status, _("Config file %s parsed"),
                                        pb_url->file);
 msg:
-       device_handler_boot_status(handler, status);
+       device_handler_status(handler, status);
        talloc_free(status);
 }
 
index c6f3ad1bb7fa0c7edc568e4e1e65ed531efe34b3..89ca87a823805940c8ae97023a684a8e72f23679 100644 (file)
@@ -96,7 +96,8 @@ int device_handler_dhcp(struct device_handler *handler,
 void device_handler_remove(struct device_handler *handler,
                struct discover_device *device);
 
-void device_handler_boot_status(void *arg, struct status *status);
+void device_handler_status(struct device_handler *handler,
+               struct status *status);
 
 struct discover_context *device_handler_discover_context_create(
                struct device_handler *handler,
index 221fc30592feec0532f2c0eb0be72b573157c770..a0442152c0c949849b4de7a4d54b944520c0ed9c 100644 (file)
@@ -286,7 +286,7 @@ static void pxe_conf_parse_cb(struct load_url_result *result, void *data)
         */
        status.message = talloc_asprintf(conf, _("pxe: parsed config for %s"),
                                        conf->dc->conf_url->host);
-       device_handler_boot_status(handler, &status);
+       device_handler_status(handler, &status);
 
        talloc_free(buf);
 out_clean: