]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
HS 2.0R2: Allow user to specify spp.xsd file location
authorBen Greear <greearb@candelatech.com>
Wed, 1 Apr 2015 00:14:20 +0000 (20:14 -0400)
committerJouni Malinen <j@w1.fi>
Wed, 1 Apr 2015 17:33:28 +0000 (20:33 +0300)
Allow user to specify the path to the spp.xsd file for hs20-osu-client
instead of requiring this to be spp.xsd in the current working
directory.

Signed-off-by: Ben Greear <greearb@candelatech.com>
hs20/client/osu_client.c
hs20/client/spp_client.c

index 6ce00f8496e7100c04f60f87d2ed7f155fb22bbe..5cd823eeb5cd518f4be2d6af9bb25d04abcae3af 100644 (file)
@@ -25,6 +25,8 @@
 #include "crypto/sha256.h"
 #include "osu_client.h"
 
+const char *spp_xsd_fname = "spp.xsd";
+
 
 void write_result(struct hs20_osu_client *ctx, const char *fmt, ...)
 {
@@ -2984,6 +2986,7 @@ static void usage(void)
               "    [-w<wpa_supplicant ctrl_iface dir>] "
               "[-r<result file>] [-f<debug file>] \\\n"
               "    [-s<summary file>] \\\n"
+              "    [-x<spp.xsd file name>] \\\n"
               "    <command> [arguments..]\n"
               "commands:\n"
               "- to_tnds <XML MO> <XML MO in TNDS format> [URN]\n"
@@ -3025,7 +3028,7 @@ int main(int argc, char *argv[])
                return -1;
 
        for (;;) {
-               c = getopt(argc, argv, "df:hKNO:qr:s:S:tw:");
+               c = getopt(argc, argv, "df:hKNO:qr:s:S:tw:x:");
                if (c < 0)
                        break;
                switch (c) {
@@ -3063,6 +3066,9 @@ int main(int argc, char *argv[])
                case 'w':
                        wpas_ctrl_path = optarg;
                        break;
+               case 'x':
+                       spp_xsd_fname = optarg;
+                       break;
                case 'h':
                default:
                        usage();
index 7ef70b0eb5c8878a9cb77719542bb934164d5ce8..cc1a0bfa967b772a64598bd56248a96e5c42ac39 100644 (file)
@@ -21,6 +21,8 @@
 #include "osu_client.h"
 
 
+extern const char *spp_xsd_fname;
+
 static int hs20_spp_update_response(struct hs20_osu_client *ctx,
                                    const char *session_id,
                                    const char *spp_status,
@@ -59,7 +61,7 @@ static int hs20_spp_validate(struct hs20_osu_client *ctx, xml_node_t *node,
                return -1;
        }
 
-       ret = xml_validate(xctx, node, "spp.xsd", &err);
+       ret = xml_validate(xctx, node, spp_xsd_fname, &err);
        if (ret < 0) {
                wpa_printf(MSG_INFO, "XML schema validation error(s)\n%s", err);
                write_summary(ctx, "SPP XML schema validation failed");