discover: Use lowercase hex chars for MAC-address-based conf requests
authorJeremy Kerr <jk@ozlabs.org>
Tue, 21 Jan 2014 23:53:46 +0000 (07:53 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Wed, 22 Jan 2014 02:21:31 +0000 (10:21 +0800)
The de-facto PXELINUX standard specifies lowercase characters for the
MAC addresses, so change our reuqests to suit.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/user-event.c
test/parser/Makefile.am
test/parser/test-pxe-mac-without-conf.c
test/parser/test-pxe-pathprefix-discover-mac.c [new file with mode: 0644]

index dc671d948fb04aa28c80c56caabebda01da3d0f4..1e366ee387c6cad138998c2686d6ae0ef0832a51 100644 (file)
@@ -208,7 +208,7 @@ static char *parse_mac_addr(struct discover_context *ctx, const char *mac)
                        mac_addr_arr + 2, mac_addr_arr + 3, mac_addr_arr + 4,
                        mac_addr_arr + 5);
 
-       mac_addr = talloc_asprintf(ctx, "01-%02X-%02X-%02X-%02X-%02X-%02X",
+       mac_addr = talloc_asprintf(ctx, "01-%02x-%02x-%02x-%02x-%02x-%02x",
                        mac_addr_arr[0], mac_addr_arr[1], mac_addr_arr[2],
                        mac_addr_arr[3], mac_addr_arr[4], mac_addr_arr[5]);
 
index fdc53e30ee372154b43789cb5680f8781c761870..7940f9d96a501dbcee54d1efdc34b8915753d325 100644 (file)
@@ -65,6 +65,7 @@ TESTS = \
        test-pxe-pathprefix-with-conf \
        test-pxe-non-url-pathprefix-with-conf \
        test-pxe-pathprefix-discover \
+       test-pxe-pathprefix-discover-mac \
        test-unresolved-remove
 
 $(TESTS): %: %.embedded-config.o
index 8c0b561fb00a09a482b97661567a4db9347a6cb6..e42e374e38699309ae0b75ab6c3c55151607d11f 100644 (file)
@@ -16,7 +16,7 @@ void run_test(struct parser_test *test)
        struct discover_context *ctx;
 
        test_read_conf_embedded_url(test,
-                       "tftp://host/dir/01-12-34-56-78-9A-BC");
+                       "tftp://host/dir/01-12-34-56-78-9a-bc");
 
        test_set_event_source(test);
        test_set_event_param(test->ctx->event, "bootfile", "dir/pxe");
diff --git a/test/parser/test-pxe-pathprefix-discover-mac.c b/test/parser/test-pxe-pathprefix-discover-mac.c
new file mode 100644 (file)
index 0000000..2decb46
--- /dev/null
@@ -0,0 +1,39 @@
+
+#include "parser-test.h"
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+default linux
+
+label linux
+kernel ./kernel
+append command line
+initrd /initrd
+#endif
+
+void run_test(struct parser_test *test)
+{
+       struct discover_boot_option *opt;
+       struct discover_context *ctx;
+
+       test_read_conf_embedded_url(test,
+                       "tftp://host/path/to/01-12-34-56-78-9a-bc");
+
+       test_set_event_source(test);
+       test_set_event_param(test->ctx->event, "mac", "12:34:56:78:9a:bc");
+       test_set_event_param(test->ctx->event, "pxepathprefix",
+                       "tftp://host/path/to/");
+
+       test_run_parser(test, "pxe");
+
+       ctx = test->ctx;
+
+       check_boot_option_count(ctx, 1);
+       opt = get_boot_option(ctx, 0);
+
+       check_name(opt, "linux");
+       check_args(opt, "command line");
+
+       check_resolved_url_resource(opt->boot_image,
+                       "tftp://host/path/to/./kernel");
+       check_resolved_url_resource(opt->initrd, "tftp://host/initrd");
+}