l2cap: add authorization_required param to ecbm service registration

This commit is contained in:
Matthias Ringwald 2023-06-26 10:54:15 +02:00
parent 5b2d3e1251
commit 989c549884
4 changed files with 12 additions and 4 deletions

View File

@ -9,11 +9,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## Unreleased
### Added
- L2CAP: additional authorization_required param in l2cap_ecbm_register_service
- GATT Client: support GATT over Enhanced LE Bearer
- GATT Server: support GATT over Enhanced LE Bearer
- LE Device DB: le_device_db_dump dumps LTK
- Port for Zephyr 3.x
### Fixed
- HCI: fix remove le device from whitelist
- HFP: use 'don't care' to accept SCO connections, fixes issue on ESP32

View File

@ -1637,7 +1637,7 @@ uint8_t att_server_eatt_init(uint8_t num_eatt_bearers, uint8_t * storage_buffer,
eatt_bearer++;
}
// TODO: define minimum EATT MTU
l2cap_ecbm_register_service(att_server_eatt_handler, BLUETOOTH_PSM_EATT, 64, 0);
l2cap_ecbm_register_service(att_server_eatt_handler, BLUETOOTH_PSM_EATT, 64, 0, false);
return 0;
}

View File

@ -5245,6 +5245,7 @@ uint8_t l2cap_cbm_register_service(btstack_packet_handler_t packet_handler, uint
service->mtu = 0;
service->packet_handler = packet_handler;
service->required_security_level = security_level;
service->requires_authorization = false;
// add to services list
btstack_linked_list_add(&l2cap_le_services, (btstack_linked_item_t *) service);
@ -5406,7 +5407,8 @@ uint8_t l2cap_cbm_provide_credits(uint16_t local_cid, uint16_t credits){
#ifdef ENABLE_L2CAP_ENHANCED_CREDIT_BASED_FLOW_CONTROL_MODE
uint8_t l2cap_ecbm_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t min_remote_mtu, gap_security_level_t security_level){
uint8_t l2cap_ecbm_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t min_remote_mtu,
gap_security_level_t security_level, bool authorization_required) {
// check for already registered psm
l2cap_service_t *service = l2cap_cbm_get_service(psm);
@ -5426,6 +5428,7 @@ uint8_t l2cap_ecbm_register_service(btstack_packet_handler_t packet_handler, uin
service->mtu = min_remote_mtu;
service->packet_handler = packet_handler;
service->required_security_level = security_level;
service->requires_authorization = authorization_required;
// add to services list
btstack_linked_list_add(&l2cap_enhanced_services, (btstack_linked_item_t *) service);

View File

@ -418,6 +418,9 @@ typedef struct {
// required security level
gap_security_level_t required_security_level;
// requires authorization
bool requires_authorization;
} l2cap_service_t;
@ -709,9 +712,11 @@ uint8_t l2cap_cbm_provide_credits(uint16_t local_cid, uint16_t credits);
* @param psm
* @param min_remote_mtu
* @param security_level
* @oaram authorization_required
* @return status
*/
uint8_t l2cap_ecbm_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t min_remote_mtu, gap_security_level_t security_level);
uint8_t l2cap_ecbm_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t min_remote_mtu,
gap_security_level_t security_level, bool authorization_required);
/**
* @brief Unregister L2CAP service in Enhanced Credit-Based Flow-Control Mode