Skip to content

Commit 5ca6d89

Browse files
committed
use available constants instead of testing errors for length
1 parent 50a9bed commit 5ca6d89

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

ports/espressif/common-hal/_bleio/Adapter.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ void common_hal_bleio_adapter_set_enabled(bleio_adapter_obj_t *self, bool enable
106106
char ble_name[32];
107107
name_len = dotenv_get_key("/.env", "CIRCUITPY_BLE_NAME", ble_name, sizeof(ble_name) - 1);
108108
if (name_len > 0) {
109+
if (name_len > MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME_MAX_LENGTH) {
110+
name_len = MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME_MAX_LENGTH;
111+
}
109112
ble_name[name_len] = '\0';
110113
ble_svc_gap_device_name_set(ble_name);
111114
} else {

ports/nrf/common-hal/_bleio/Adapter.c

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -464,17 +464,11 @@ void common_hal_bleio_adapter_set_name(bleio_adapter_obj_t *self, const char *na
464464
ble_gap_conn_sec_mode_t sec;
465465
sec.lv = 0;
466466
sec.sm = 0;
467-
int result;
468-
result = sd_ble_gap_device_name_set(&sec, (const uint8_t *)name, strlen(name));
469-
for (int name_len = strlen(name); name_len > 0; --name_len) {
470-
result = sd_ble_gap_device_name_set(&sec, (const uint8_t *)name, name_len);
471-
// expecting NRF_ERROR_DATA_SIZE when name too long
472-
if (result == NRF_SUCCESS) {
473-
return;
474-
}
467+
uint16_t len = strlen(name);
468+
if (len > BLE_GAP_DEVNAME_MAX_LEN) {
469+
len = BLE_GAP_DEVNAME_MAX_LEN;
475470
}
476-
// default back to default if all fails
477-
sd_ble_gap_device_name_set(&sec, (const uint8_t *)default_ble_name, sizeof(default_ble_name) - 1);
471+
sd_ble_gap_device_name_set(&sec, (const uint8_t *)name, len);
478472
}
479473

480474
STATIC uint32_t _update_identities(bool is_central) {

0 commit comments

Comments
 (0)