summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <dirbaio@dirbaio.net>2021-06-29 02:40:11 +0200
committerDario Nieuwenhuis <dirbaio@dirbaio.net>2021-06-29 02:45:12 +0200
commitc774d6769482de7c1c9dd4fcbd5332d9f26cd2fe (patch)
tree00f77bf33ecf1ab6bec358dde52a63f4a2f589cd
parentf78135ec68586fb7d85af80e6e1f3be4d93ccbda (diff)
downloadnrf-softdevice-c774d6769482de7c1c9dd4fcbd5332d9f26cd2fe.zip
ble/gap: unconditionally accept peer's conn param requests.
-rw-r--r--nrf-softdevice/src/ble/gap.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/nrf-softdevice/src/ble/gap.rs b/nrf-softdevice/src/ble/gap.rs
index fc8f135..b28a49f 100644
--- a/nrf-softdevice/src/ble/gap.rs
+++ b/nrf-softdevice/src/ble/gap.rs
@@ -55,6 +55,25 @@ pub(crate) unsafe fn on_evt(ble_evt: *const raw::ble_evt_t) {
state.conn_params = conn_params;
});
}
+ #[cfg(feature = "ble-central")]
+ raw::BLE_GAP_EVTS_BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST => {
+ let conn_handle = gap_evt.conn_handle;
+ let conn_params = gap_evt.params.conn_param_update_request.conn_params;
+ debug!(
+ "on_conn_param_update_request conn_handle={:?} conn_sup_timeout={:?} max_conn_interval={:?} min_conn_interval={:?} slave_latency={:?}",
+ gap_evt.conn_handle,
+ conn_params.conn_sup_timeout,
+ conn_params.max_conn_interval,
+ conn_params.min_conn_interval,
+ conn_params.slave_latency,
+ );
+
+ let ret = raw::sd_ble_gap_conn_param_update(conn_handle, &conn_params);
+ if let Err(err) = RawError::convert(ret) {
+ warn!("sd_ble_gap_conn_param_update err {:?}", err);
+ return;
+ }
+ }
raw::BLE_GAP_EVTS_BLE_GAP_EVT_TIMEOUT => {
trace!("on_timeout conn_handle={:?}", gap_evt.conn_handle);