From 2be20e6644cc45d19a1f02edfaf663938f723ffc Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 15 Jan 2015 17:33:08 -0600 Subject: [PATCH] ie: Add RSNE parser that works on raw data --- src/ie.c | 16 ++++++++++++++++ src/ie.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/src/ie.c b/src/ie.c index d6fc4955..070cbe85 100644 --- a/src/ie.c +++ b/src/ie.c @@ -422,3 +422,19 @@ done: return 0; } + +int ie_parse_rsne_from_data(const uint8_t *data, size_t len, + struct ie_rsn_info *info) +{ + struct ie_tlv_iter iter; + + ie_tlv_iter_init(&iter, data, len); + + if (!ie_tlv_iter_next(&iter)) + return -EMSGSIZE; + + if (ie_tlv_iter_get_tag(&iter) != IE_TYPE_RSN) + return -EPROTOTYPE; + + return ie_parse_rsne(&iter, info); +} diff --git a/src/ie.h b/src/ie.h index dfac6a3a..41c87f77 100644 --- a/src/ie.h +++ b/src/ie.h @@ -239,3 +239,5 @@ void ie_tlv_builder_finalize(struct ie_tlv_builder *builder, unsigned int *out_len); int ie_parse_rsne(struct ie_tlv_iter *iter, struct ie_rsn_info *info); +int ie_parse_rsne_from_data(const uint8_t *data, size_t len, + struct ie_rsn_info *info);