From 0bb20efcd00826d5396bacc834f2e47a63a52f4f Mon Sep 17 00:00:00 2001 From: Ben Greear Date: Tue, 31 Mar 2015 20:14:20 -0400 Subject: [PATCH] HS 2.0R2: Allow user to specify spp.xsd file location 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 --- hs20/client/osu_client.c | 8 +++++++- hs20/client/spp_client.c | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hs20/client/osu_client.c b/hs20/client/osu_client.c index 6ce00f849..5cd823eeb 100644 --- a/hs20/client/osu_client.c +++ b/hs20/client/osu_client.c @@ -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] " "[-r] [-f] \\\n" " [-s] \\\n" + " [-x] \\\n" " [arguments..]\n" "commands:\n" "- to_tnds [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(); diff --git a/hs20/client/spp_client.c b/hs20/client/spp_client.c index 7ef70b0eb..cc1a0bfa9 100644 --- a/hs20/client/spp_client.c +++ b/hs20/client/spp_client.c @@ -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");