@@ -64,6 +64,10 @@ static const GapScanningParams default_scan_params;
64
64
static const mbed_error_status_t mixed_scan_api_error =
65
65
MBED_MAKE_ERROR (MBED_MODULE_BLE, MBED_ERROR_CODE_BLE_USE_INCOMPATIBLE_API);
66
66
67
+ static const mbed_error_status_t illegal_state_error =
68
+ MBED_MAKE_ERROR (MBED_MODULE_BLE, MBED_ERROR_CODE_BLE_ILLEGAL_STATE);
69
+
70
+
67
71
/*
68
72
* Return true if value is included in the range [lower_bound : higher_bound]
69
73
*/
@@ -1784,7 +1788,8 @@ void GenericGap::on_disconnection_complete(const pal::GapDisconnectionCompleteEv
1784
1788
void GenericGap::on_connection_parameter_request (const pal::GapRemoteConnectionParameterRequestEvent &e)
1785
1789
{
1786
1790
if (_user_manage_connection_parameter_requests) {
1787
- _eventHandler->onUpdateConnectionParametersRequest (
1791
+ if (_eventHandler) {
1792
+ _eventHandler->onUpdateConnectionParametersRequest (
1788
1793
UpdateConnectionParametersRequestEvent (
1789
1794
e.connection_handle ,
1790
1795
conn_interval_t (e.min_connection_interval ),
@@ -1793,6 +1798,9 @@ void GenericGap::on_connection_parameter_request(const pal::GapRemoteConnectionP
1793
1798
supervision_timeout_t (e.supervision_timeout )
1794
1799
)
1795
1800
);
1801
+ } else {
1802
+ MBED_ERROR (illegal_state_error, " Event handler required if connection params are user handled" );
1803
+ }
1796
1804
} else {
1797
1805
_pal_gap.accept_connection_parameter_request (
1798
1806
e.connection_handle ,
@@ -1808,6 +1816,10 @@ void GenericGap::on_connection_parameter_request(const pal::GapRemoteConnectionP
1808
1816
1809
1817
void GenericGap::on_connection_update (const pal::GapConnectionUpdateEvent &e)
1810
1818
{
1819
+ if (!_eventHandler) {
1820
+ return ;
1821
+ }
1822
+
1811
1823
_eventHandler->onConnectionParametersUpdateComplete (
1812
1824
ConnectionParametersUpdateCompleteEvent (
1813
1825
e.status == pal::hci_error_code_t ::SUCCESS ? BLE_ERROR_NONE : BLE_ERROR_UNSPECIFIED,
0 commit comments