diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2012-01-18 01:18:16 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-01-18 01:18:16 +0200 |
commit | cacfa7e3a408583614d029a532858367fff1ddac (patch) | |
tree | 986d0e604b1eac352b6a62e9839e8084e02988a8 /src/eir.c | |
parent | 4b98e3cfcb03790c9c452990b054868782b9481d (diff) | |
download | bluez-cacfa7e3a408583614d029a532858367fff1ddac.tar.gz |
eir: Add eir_length() function
Diffstat (limited to 'src/eir.c')
-rw-r--r-- | src/eir.c | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -369,3 +369,26 @@ size_t eir_append_data(uint8_t *eir, size_t eir_len, uint8_t type, return eir_len; } + +size_t eir_length(uint8_t *eir, size_t maxlen) +{ + uint8_t field_len; + size_t parsed, length; + + for (parsed = 0, length = 0; parsed < maxlen - 1; parsed += field_len) { + field_len = eir[0]; + + if (field_len == 0) + break; + + parsed += field_len + 1; + + if (parsed > maxlen) + break; + + length = parsed; + eir += field_len + 1; + } + + return length; +} |