@@ -507,6 +507,9 @@ ble_error_t Gap::connect(
507
507
return BLE_ERROR_INVALID_PARAM;
508
508
}
509
509
510
+ _last_used_peer_address_type = peerAddressType;
511
+ _last_used_peer_address = peerAddress;
512
+
510
513
// ensure scan is stopped.
511
514
_pal_gap.scan_enable (false , false );
512
515
@@ -538,6 +541,9 @@ ble_error_t Gap::connect(
538
541
adjusted_address_type = peer_address_type_t ::RANDOM;
539
542
}
540
543
544
+ _last_used_peer_address_type = adjusted_address_type;
545
+ _last_used_peer_address = peerAddress;
546
+
541
547
return _pal_gap.extended_create_connection (
542
548
connectionParams.getFilter (),
543
549
connectionParams.getOwnAddressType (),
@@ -625,12 +631,21 @@ ble_error_t Gap::rejectConnectionParametersUpdate(
625
631
);
626
632
}
627
633
628
-
629
634
ble_error_t Gap::cancelConnect ()
630
635
{
631
- return _pal_gap.cancel_connection_creation ();
636
+ if (_last_used_peer_address_type != peer_address_type_t ::ANONYMOUS) {
637
+ return cancelConnect (_last_used_peer_address_type, _last_used_peer_address);
638
+ }
639
+ return BLE_ERROR_OPERATION_NOT_PERMITTED;
632
640
}
633
641
642
+ ble_error_t Gap::cancelConnect (
643
+ peer_address_type_t peerAddressType,
644
+ const ble::address_t &peerAddress
645
+ )
646
+ {
647
+ return _pal_gap.cancel_connection_creation (peerAddressType, peerAddress);
648
+ }
634
649
635
650
ble_error_t Gap::readPhy (ble::connection_handle_t connection)
636
651
{
0 commit comments