summaryrefslogtreecommitdiff
path: root/src/eir.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-04-16 17:09:32 +0300
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-04-17 14:15:48 +0300
commite3f36f586c8f128dd4f696f715640e74d7907bc4 (patch)
tree159d41355774967ace032fd37a208f4937a69fa7 /src/eir.c
parent09000e29db2cb1a5021c5f60316ee87e28ec88c9 (diff)
downloadbluez-e3f36f586c8f128dd4f696f715640e74d7907bc4.tar.gz
core/eir: Fix service data parsing
The UUID type was not being set correctly.
Diffstat (limited to 'src/eir.c')
-rw-r--r--src/eir.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/eir.c b/src/eir.c
index 34f6e168d..c984fa5a7 100644
--- a/src/eir.c
+++ b/src/eir.c
@@ -191,6 +191,7 @@ static void eir_parse_uuid16_data(struct eir_data *eir, const uint8_t *data,
if (len < 2 || len > EIR_SD_MAX_LEN)
return;
+ service.type = SDP_UUID16;
service.value.uuid16 = get_le16(data);
eir_parse_sd(eir, &service, data + 2, len - 2);
}
@@ -203,6 +204,7 @@ static void eir_parse_uuid32_data(struct eir_data *eir, const uint8_t *data,
if (len < 4 || len > EIR_SD_MAX_LEN)
return;
+ service.type = SDP_UUID32;
service.value.uuid32 = get_le32(data);
eir_parse_sd(eir, &service, data + 4, len - 4);
}
@@ -216,6 +218,8 @@ static void eir_parse_uuid128_data(struct eir_data *eir, const uint8_t *data,
if (len < 16 || len > EIR_SD_MAX_LEN)
return;
+ service.type = SDP_UUID128;
+
for (k = 0; k < 16; k++)
service.value.uuid128.data[k] = data[16 - k - 1];