mirror of
https://github.com/esphome/esphome.git
synced 2024-11-30 02:34:12 +01:00
Fix ble parsing with zero padded advertisements (#4162)
This commit is contained in:
parent
4be7cd12a1
commit
21679cf2ba
1 changed files with 6 additions and 1 deletions
|
@ -705,8 +705,13 @@ void ESPBTDevice::parse_adv_(const esp_ble_gap_cb_param_t::ble_scan_result_evt_p
|
||||||
|
|
||||||
while (offset + 2 < len) {
|
while (offset + 2 < len) {
|
||||||
const uint8_t field_length = payload[offset++]; // First byte is length of adv record
|
const uint8_t field_length = payload[offset++]; // First byte is length of adv record
|
||||||
if (field_length == 0)
|
if (field_length == 0) {
|
||||||
|
if (offset < param.adv_data_len && param.scan_rsp_len > 0) { // Zero padded advertisement data
|
||||||
|
offset = param.adv_data_len;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// first byte of adv record is adv record type
|
// first byte of adv record is adv record type
|
||||||
const uint8_t record_type = payload[offset++];
|
const uint8_t record_type = payload[offset++];
|
||||||
|
|
Loading…
Reference in a new issue