Merge branch 'bugfix/cache_refresh_compilation_issue_v5.4' into 'release/v5.4'

fix(nimble): Fix build when gatt client disabled (v5.4)

See merge request espressif/esp-idf!52817
This commit is contained in:
Rahul Tank
2026-09-21 11:21:44 +05:30
7 changed files with 79 additions and 9 deletions

View File

@@ -322,6 +322,17 @@ menu "GAP"
Use this option to do host based Random Private Address resolution.
This option is valid only for ESP32
config BT_NIMBLE_HOST_BASED_PRIVACY_RESOLVE_ON_SCAN
bool "Resolve peer RPA while scanning"
default y
depends on BT_NIMBLE_HOST_BASED_PRIVACY
help
Enable this option to resolve peer Resolvable Private Addresses (RPAs)
to their identity addresses in scan results. This is useful when an
application needs to identify a peer while scanning, for example, to
match a bonded device. When disabled, scan results retain the peer's
on-air RPA, and the RPA is resolved when the connection is established.
config BT_NIMBLE_HOST_ALLOW_CONNECT_WITH_SCAN
bool "Allow Connections with scanning in progress"
depends on BT_NIMBLE_ENABLED && !(IDF_TARGET_ESP32C2)

View File

@@ -989,6 +989,14 @@
#endif
#ifndef MYNEWT_VAL_BLE_HOST_BASED_PRIVACY_RESOLVE_ON_SCAN
#ifdef CONFIG_BT_NIMBLE_HOST_BASED_PRIVACY_RESOLVE_ON_SCAN
#define MYNEWT_VAL_BLE_HOST_BASED_PRIVACY_RESOLVE_ON_SCAN (1)
#else
#define MYNEWT_VAL_BLE_HOST_BASED_PRIVACY_RESOLVE_ON_SCAN (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_RPA_TIMEOUT
#define MYNEWT_VAL_BLE_RPA_TIMEOUT (CONFIG_BT_NIMBLE_RPA_TIMEOUT)
#endif

View File

@@ -346,10 +346,23 @@ ble_cts_cent_connect_if_interesting(void *disc)
* timeout.
*/
#if CONFIG_EXAMPLE_EXTENDED_ADV
addr = &((struct ble_gap_ext_disc_desc *)disc)->addr;
struct ble_gap_ext_disc_desc *disc_desc = disc;
#else
addr = &((struct ble_gap_disc_desc *)disc)->addr;
struct ble_gap_disc_desc *disc_desc = disc;
#endif
addr = &disc_desc->addr;
#if MYNEWT_VAL(BLE_HOST_BASED_PRIVACY)
/*
* With host-based privacy, the advertising report's peer address may be
* resolved to the identity address by the Host. The Controller does not
* perform peer RPA resolution, so use the current OTA address when
* initiating the connection.
*/
addr = &disc_desc->ota_addr;
#endif
rc = ble_gap_connect(own_addr_type, addr, 30000, NULL,
ble_cts_cent_gap_event, NULL);
if (rc != 0) {

View File

@@ -468,10 +468,23 @@ ble_htp_cent_connect_if_interesting(void *disc)
* timeout.
*/
#if CONFIG_EXAMPLE_EXTENDED_ADV
addr = &((struct ble_gap_ext_disc_desc *)disc)->addr;
struct ble_gap_ext_disc_desc *disc_desc = disc;
#else
addr = &((struct ble_gap_disc_desc *)disc)->addr;
struct ble_gap_disc_desc *disc_desc = disc;
#endif
addr = &disc_desc->addr;
#if MYNEWT_VAL(BLE_HOST_BASED_PRIVACY)
/*
* With host-based privacy, the advertising report's peer address may be
* resolved to the identity address by the Host. The Controller does not
* perform peer RPA resolution, so use the current OTA address when
* initiating the connection.
*/
addr = &disc_desc->ota_addr;
#endif
rc = ble_gap_connect(own_addr_type, addr, 30000, NULL,
ble_htp_cent_gap_event, NULL);
if (rc != 0) {

View File

@@ -356,10 +356,23 @@ ble_prox_cent_connect_if_interesting(void *disc)
* timeout.
*/
#if CONFIG_EXAMPLE_EXTENDED_ADV
addr = &((struct ble_gap_ext_disc_desc *)disc)->addr;
struct ble_gap_ext_disc_desc *disc_desc = disc;
#else
addr = &((struct ble_gap_disc_desc *)disc)->addr;
struct ble_gap_disc_desc *disc_desc = disc;
#endif
addr = &disc_desc->addr;
#if MYNEWT_VAL(BLE_HOST_BASED_PRIVACY)
/*
* With host-based privacy, the advertising report's peer address may be
* resolved to the identity address by the Host. The Controller does not
* perform peer RPA resolution, so use the current OTA address when
* initiating the connection.
*/
addr = &disc_desc->ota_addr;
#endif
rc = ble_gap_connect(own_addr_type, addr, 30000, NULL,
ble_prox_cent_gap_event, NULL);
if (rc != 0) {

View File

@@ -626,9 +626,21 @@ blecent_connect_if_interesting(void *disc)
* timeout.
*/
#if CONFIG_EXAMPLE_EXTENDED_ADV
addr = &((struct ble_gap_ext_disc_desc *)disc)->addr;
struct ble_gap_ext_disc_desc *disc_desc = disc;
#else
addr = &((struct ble_gap_disc_desc *)disc)->addr;
struct ble_gap_disc_desc *disc_desc = disc;
#endif
addr = &disc_desc->addr;
#if MYNEWT_VAL(BLE_HOST_BASED_PRIVACY)
/*
* With host-based privacy, the advertising report's peer address may be
* resolved to the identity address by the Host. The Controller does not
* perform peer RPA resolution, so use the current OTA address when
* initiating the connection.
*/
addr = &disc_desc->ota_addr;
#endif
rc = ble_gap_connect(own_addr_type, addr, 30000, NULL,