From 04545aa7dfee1a791ed9379f05278c7e277ae6ec Mon Sep 17 00:00:00 2001 From: Ben Greear Date: Tue, 31 Mar 2015 19:48:09 -0400 Subject: [PATCH] hs20-client: use configured ca-fname instead of cwd. This gives more flexibility to the hs20 client user. Signed-off-by: Ben Greear --- hs20/client/osu_client.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/hs20/client/osu_client.c b/hs20/client/osu_client.c index 5cd823eeb5..40d5c611f4 100644 --- a/hs20/client/osu_client.c +++ b/hs20/client/osu_client.c @@ -2039,11 +2039,19 @@ static int osu_connect(struct hs20_osu_client *ctx, const char *bssid, if (set_network_quoted(ifname, id, "ssid", ssid) < 0) return -1; if (osu_nai && os_strlen(osu_nai) > 0) { - char dir[255], fname[300]; - if (getcwd(dir, sizeof(dir)) == NULL) - return -1; - os_snprintf(fname, sizeof(fname), "%s/osu-ca.pem", dir); + char fname[300]; + if (ctx->ca_fname) { + strncpy(fname, ctx->ca_fname, sizeof(fname)); + } + else { + char dir[255]; + if (getcwd(dir, sizeof(dir)) == NULL) + return -1; + os_snprintf(fname, sizeof(fname), "%s/osu-ca.pem", dir); + ctx->ca_fname = strdup(fname); /* so lib curl can use it. */ + } + fname[sizeof(fname) - 1] = 0; /* ensure null termination */ if (set_network(ifname, id, "proto", "OSEN") < 0 || set_network(ifname, id, "key_mgmt", "OSEN") < 0 || set_network(ifname, id, "pairwise", "CCMP") < 0 ||