att_server: check if connection handle is valid before queue can send now request

This commit is contained in:
Matthias Ringwald 2018-04-30 11:31:22 +02:00
parent 631785acb5
commit ae89fd3ac3

View File

@ -856,10 +856,14 @@ void att_server_request_can_send_now_event(hci_con_handle_t con_handle){
}
void att_server_register_can_send_now_callback(btstack_context_callback_registration_t * callback_registration, hci_con_handle_t con_handle){
// check if can send already
if (att_dispatch_server_can_send_now(con_handle)){
callback_registration->callback(callback_registration->context);
return;
// check if valid con handle
switch (gap_get_connection_type(con_handle)){
case BD_ADDR_TYPE_LE_PUBLIC:
case BD_ADDR_TYPE_LE_RANDOM:
break;
default:
// con handle not valid for att send
return;
}
callback_registration->context = (void*)(uintptr_t) con_handle;
btstack_linked_list_add_tail(&can_send_now_clients, (btstack_linked_item_t*) callback_registration);