From d6d1ea5c2a408967918f16770f66ea864e1bd3c0 Mon Sep 17 00:00:00 2001 From: Vincent Coubard Date: Sat, 10 Nov 2018 20:02:44 +0000 Subject: [PATCH] BLE: rework GenericGap::stopAdvertising(AdvHandle) --- .../FEATURE_BLE/source/generic/GenericGap.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/features/FEATURE_BLE/source/generic/GenericGap.cpp b/features/FEATURE_BLE/source/generic/GenericGap.cpp index 4777c4f29a..fe44081e77 100644 --- a/features/FEATURE_BLE/source/generic/GenericGap.cpp +++ b/features/FEATURE_BLE/source/generic/GenericGap.cpp @@ -1840,7 +1840,6 @@ ble_error_t GenericGap::startAdvertising( maxDuration ); } - } else { /* round up */ uint16_t duration_10ms = maxDuration ? (maxDuration - 1) / 10 + 1 : 0 ; @@ -1868,15 +1867,21 @@ ble_error_t GenericGap::stopAdvertising(AdvHandle_t handle) { } if (!is_extended_advertising_available()) { - if (handle == Gap::LEGACY_ADVERTISING_HANDLE) { - return stopAdvertising(); + if (handle != Gap::LEGACY_ADVERTISING_HANDLE) { + return BLE_ERROR_INVALID_PARAM; } - return BLE_ERROR_NOT_IMPLEMENTED; + + ble_error_t err = _pal_gap.advertising_enable(false); + if (err) { + return err; + } + _advertising_timeout.detach(); + // FIXME: Handle random address rotation of this advertising set } return _pal_gap.extended_advertising_enable( - true, - 1, + /*enable ? */ false, + /* number of advertising sets */ 1, &handle, NULL, NULL