From 77abdb7d9685cbd70f47d7c262ccfba2ee7b2410 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Tue, 13 Sep 2016 17:23:43 -0500 Subject: [PATCH] wscutil: add wsc_build_association_request --- src/wscutil.c | 21 +++++++++++++++++++++ src/wscutil.h | 4 ++++ 2 files changed, 25 insertions(+) diff --git a/src/wscutil.c b/src/wscutil.c index 18149f28..602e3333 100644 --- a/src/wscutil.c +++ b/src/wscutil.c @@ -2050,6 +2050,27 @@ done: return ret; } +uint8_t *wsc_build_association_request( + const struct wsc_association_request *association_request, + size_t *out_len) +{ + struct wsc_attr_builder *builder; + uint8_t *ret; + + builder = wsc_attr_builder_new(128); + build_version(builder, 0x10); + build_request_type(builder, association_request->request_type); + + if (!association_request->version2) + goto done; + + START_WFA_VENDOR_EXTENSION(); + +done: + ret = wsc_attr_builder_free(builder, false, out_len); + return ret; +} + uint8_t *wsc_build_m1(const struct wsc_m1 *m1, size_t *out_len) { struct wsc_attr_builder *builder; diff --git a/src/wscutil.h b/src/wscutil.h index cce334f2..dc575b47 100644 --- a/src/wscutil.h +++ b/src/wscutil.h @@ -590,6 +590,10 @@ int wsc_parse_wsc_done(const uint8_t *pdu, uint32_t len, struct wsc_done *out); uint8_t *wsc_build_probe_request(const struct wsc_probe_request *probe_request, size_t *out_len); +uint8_t *wsc_build_association_request( + const struct wsc_association_request *association_request, + size_t *out_len); + uint8_t *wsc_build_m1(const struct wsc_m1 *m1, size_t *out_len); uint8_t *wsc_build_m2(const struct wsc_m2 *m2, size_t *out_len); uint8_t *wsc_build_m3(const struct wsc_m3 *m3, size_t *out_len);