-
#include <assert.h>
#include <stdlib.h>
#include <stdbool.h>
{
const struct config *config;
struct boot_priority *prio;
- int i;
+ unsigned int i;
config = config_get();
{
struct discover_context *ctx;
- ctx = talloc(handler, struct discover_context);
+ ctx = talloc_zero(handler, struct discover_context);
ctx->device = device;
- ctx->conf_url = NULL;
- ctx->test_data = NULL;
list_init(&ctx->boot_options);
return ctx;
* array, but has only just been initialised by the hotplug source.
*/
int device_handler_discover(struct device_handler *handler,
- struct discover_device *dev, enum conf_method method)
+ struct discover_device *dev)
{
struct discover_context *ctx;
int rc;
goto out;
/* run the parsers. This will populate the ctx's boot_option list. */
- iterate_parsers(ctx, method);
+ iterate_parsers(ctx);
/* add discovered stuff to the handler */
device_handler_discover_context_commit(handler, ctx);
return 0;
}
-/* incoming conf event */
-int device_handler_conf(struct device_handler *handler,
- struct discover_device *dev, struct pb_url *url,
- enum conf_method method)
+/* Incoming dhcp event */
+int device_handler_dhcp(struct device_handler *handler,
+ struct discover_device *dev, struct event *event)
{
struct discover_context *ctx;
/* create our context */
ctx = device_handler_discover_context_create(handler, dev);
- ctx->conf_url = url;
+ ctx->event = event;
- iterate_parsers(ctx, method);
+ iterate_parsers(ctx);
device_handler_discover_context_commit(handler, ctx);
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;
+
+ /* 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);
+
+ talloc_free(ctx);
+
+ return 0;
+}
+
static struct discover_boot_option *find_boot_option_by_id(
struct device_handler *handler, const char *id)
{
discover_server_notify_boot_status(handler->server, &status);
}
+void device_handler_update_config(struct device_handler *handler,
+ struct config *config)
+{
+ config_set(config);
+ discover_server_notify_config(handler->server, config);
+}
+
#ifndef PETITBOOT_TEST
static bool check_existing_mount(struct discover_device *dev)
{