diff options
Diffstat (limited to 'discover')
-rw-r--r-- | discover/device-handler.c | 8 | ||||
-rw-r--r-- | discover/device-handler.h | 4 | ||||
-rw-r--r-- | discover/pxe-parser.c | 6 |
3 files changed, 14 insertions, 4 deletions
diff --git a/discover/device-handler.c b/discover/device-handler.c index af7918b..f8b7bf5 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -114,6 +114,12 @@ const struct discover_device *device_handler_get_device( return handler->devices[index]; } +struct network *device_handler_get_network( + const struct device_handler *handler) +{ + return handler->network; +} + struct discover_boot_option *discover_boot_option_create( struct discover_context *ctx, struct discover_device *device) @@ -788,8 +794,8 @@ struct discover_context *device_handler_discover_context_create( struct discover_context *ctx; ctx = talloc_zero(handler, struct discover_context); + ctx->handler = handler; ctx->device = device; - ctx->network = handler->network; list_init(&ctx->boot_options); return ctx; diff --git a/discover/device-handler.h b/discover/device-handler.h index fe8a3b0..874133d 100644 --- a/discover/device-handler.h +++ b/discover/device-handler.h @@ -54,12 +54,12 @@ struct discover_boot_option { struct discover_context { + struct device_handler *handler; struct parser *parser; struct event *event; struct discover_device *device; struct list boot_options; struct pb_url *conf_url; - struct network *network; void *test_data; }; @@ -79,6 +79,8 @@ void device_handler_destroy(struct device_handler *devices); int device_handler_get_device_count(const struct device_handler *handler); const struct discover_device *device_handler_get_device( const struct device_handler *handler, unsigned int index); +struct network *device_handler_get_network( + const struct device_handler *handler); struct discover_device *discover_device_create(struct device_handler *handler, const char *uuid, const char *id); diff --git a/discover/pxe-parser.c b/discover/pxe-parser.c index 8237c4b..cd5f149 100644 --- a/discover/pxe-parser.c +++ b/discover/pxe-parser.c @@ -11,6 +11,7 @@ #include <file/file.h> #include <i18n/i18n.h> +#include "device-handler.h" #include "parser.h" #include "parser-conf.h" #include "parser-utils.h" @@ -108,8 +109,9 @@ static void pxe_process_sysappend(struct discover_context *ctx, return; if (val & 0x2) { - uint8_t *mac = find_mac_by_name(ctx, ctx->network, - event->device); + uint8_t *mac = find_mac_by_name(ctx, + device_handler_get_network(ctx->handler), + event->device); str = pxe_sysappend_mac(ctx, mac); if (str) { pxe_append_string(opt, str); |