From cee8080117cb42d8a6490e7df5360ca649705871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Storr=C3=B8?= Date: Thu, 30 May 2024 15:56:05 +0200 Subject: [PATCH] Bluetooth: Mesh: Fix PB GATT adv name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes issue where PB GATT Server will drop advertising device name if optional provisioning URI is not provided. Signed-off-by: Anders Storrø --- subsys/bluetooth/mesh/pb_gatt_srv.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/subsys/bluetooth/mesh/pb_gatt_srv.c b/subsys/bluetooth/mesh/pb_gatt_srv.c index 62436a3c8d02fc..f125bbb293c19c 100644 --- a/subsys/bluetooth/mesh/pb_gatt_srv.c +++ b/subsys/bluetooth/mesh/pb_gatt_srv.c @@ -226,26 +226,27 @@ static size_t gatt_prov_adv_create(struct bt_data prov_sd[2]) sys_put_be16(prov->oob_info, prov_svc_data + 18); if (!prov->uri) { - return 0; + goto dev_name; } uri_len = strlen(prov->uri); if (uri_len > 29) { /* There's no way to shorten an URI */ LOG_WRN("Too long URI to fit advertising packet"); - return 0; + goto dev_name; } - prov_sd[0].type = BT_DATA_URI; - prov_sd[0].data_len = uri_len; - prov_sd[0].data = (const uint8_t *)prov->uri; + prov_sd[prov_sd_len].type = BT_DATA_URI; + prov_sd[prov_sd_len].data_len = uri_len; + prov_sd[prov_sd_len].data = (const uint8_t *)prov->uri; prov_sd_len += 1; +dev_name: #if defined(CONFIG_BT_MESH_PB_GATT_USE_DEVICE_NAME) - prov_sd[1].type = BT_DATA_NAME_COMPLETE; - prov_sd[1].data_len = sizeof(CONFIG_BT_DEVICE_NAME) - 1; - prov_sd[1].data = CONFIG_BT_DEVICE_NAME; + prov_sd[prov_sd_len].type = BT_DATA_NAME_COMPLETE; + prov_sd[prov_sd_len].data_len = sizeof(CONFIG_BT_DEVICE_NAME) - 1; + prov_sd[prov_sd_len].data = CONFIG_BT_DEVICE_NAME; prov_sd_len += 1; #endif