le_streamer_client, le_data_channel_client: fix adv name matching

This commit is contained in:
Matthias Ringwald 2020-12-11 23:36:54 +01:00
parent 858a092d6e
commit 8580489cbd
2 changed files with 6 additions and 12 deletions

View File

@ -140,15 +140,12 @@ static int advertisement_report_contains_name(const char * name, uint8_t * adver
uint8_t data_type = ad_iterator_get_data_type(&context); uint8_t data_type = ad_iterator_get_data_type(&context);
uint8_t data_size = ad_iterator_get_data_len(&context); uint8_t data_size = ad_iterator_get_data_len(&context);
const uint8_t * data = ad_iterator_get_data(&context); const uint8_t * data = ad_iterator_get_data(&context);
int i;
switch (data_type){ switch (data_type){
case BLUETOOTH_DATA_TYPE_SHORTENED_LOCAL_NAME: case BLUETOOTH_DATA_TYPE_SHORTENED_LOCAL_NAME:
case BLUETOOTH_DATA_TYPE_COMPLETE_LOCAL_NAME: case BLUETOOTH_DATA_TYPE_COMPLETE_LOCAL_NAME:
// compare common prefix // compare prefix
for (i=0; i<data_size && i<name_len;i++){ if (data_size < name_len) break;
if (data[i] != name[i]) break; if (memcmp(data, name, name_len) == 0) return 1;
}
// prefix match
return 1; return 1;
default: default:
break; break;

View File

@ -185,15 +185,12 @@ static int advertisement_report_contains_name(const char * name, uint8_t * adver
uint8_t data_type = ad_iterator_get_data_type(&context); uint8_t data_type = ad_iterator_get_data_type(&context);
uint8_t data_size = ad_iterator_get_data_len(&context); uint8_t data_size = ad_iterator_get_data_len(&context);
const uint8_t * data = ad_iterator_get_data(&context); const uint8_t * data = ad_iterator_get_data(&context);
int i;
switch (data_type){ switch (data_type){
case BLUETOOTH_DATA_TYPE_SHORTENED_LOCAL_NAME: case BLUETOOTH_DATA_TYPE_SHORTENED_LOCAL_NAME:
case BLUETOOTH_DATA_TYPE_COMPLETE_LOCAL_NAME: case BLUETOOTH_DATA_TYPE_COMPLETE_LOCAL_NAME:
// compare common prefix // compare prefix
for (i=0; i<data_size && i<name_len;i++){ if (data_size < name_len) break;
if (data[i] != name[i]) break; if (memcmp(data, name, name_len) == 0) return 1;
}
// prefix match
return 1; return 1;
default: default:
break; break;