mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-01-26 21:35:16 +00:00
gap: Register filter for rejecting classic connections
This commit is contained in:
parent
d7e6933a33
commit
07e010b651
@ -176,6 +176,13 @@ void gap_set_bondable_mode(int enabled);
|
|||||||
*/
|
*/
|
||||||
int gap_get_bondable_mode(void);
|
int gap_get_bondable_mode(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Register filter for rejecting classic connections. Callback will return 1 accept connection, 0 on reject.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void gap_register_classic_connection_filter(int (*accept_callback)(bd_addr_t addr));
|
||||||
|
|
||||||
|
|
||||||
/* Configure Secure Simple Pairing */
|
/* Configure Secure Simple Pairing */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
13
src/hci.c
13
src/hci.c
@ -2104,6 +2104,14 @@ static void event_handler(uint8_t *packet, int size){
|
|||||||
break;
|
break;
|
||||||
case HCI_EVENT_CONNECTION_REQUEST:
|
case HCI_EVENT_CONNECTION_REQUEST:
|
||||||
reverse_bd_addr(&packet[2], addr);
|
reverse_bd_addr(&packet[2], addr);
|
||||||
|
if (hci_stack->gap_classic_accept_callback != NULL){
|
||||||
|
if ((*hci_stack->gap_classic_accept_callback)(addr) == 0){
|
||||||
|
hci_stack->decline_reason = 0x0d;
|
||||||
|
bd_addr_copy(hci_stack->decline_addr, addr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: eval COD 8-10
|
// TODO: eval COD 8-10
|
||||||
link_type = packet[11];
|
link_type = packet[11];
|
||||||
log_info("Connection_incoming: %s, type %u", bd_addr_to_str(addr), link_type);
|
log_info("Connection_incoming: %s, type %u", bd_addr_to_str(addr), link_type);
|
||||||
@ -5101,6 +5109,11 @@ HCI_STATE hci_get_state(void){
|
|||||||
return hci_stack->state;
|
return hci_stack->state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_CLASSIC
|
||||||
|
void gap_register_classic_connection_filter(int (*accept_callback)(bd_addr_t addr)){
|
||||||
|
hci_stack->gap_classic_accept_callback = accept_callback;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set callback for Bluetooth Hardware Error
|
* @brief Set callback for Bluetooth Hardware Error
|
||||||
|
@ -730,6 +730,11 @@ typedef struct {
|
|||||||
/* callbacks for events */
|
/* callbacks for events */
|
||||||
btstack_linked_list_t event_handlers;
|
btstack_linked_list_t event_handlers;
|
||||||
|
|
||||||
|
#ifdef ENABLE_CLASSIC
|
||||||
|
/* callback for reject classic connection */
|
||||||
|
int (*gap_classic_accept_callback)(bd_addr_t addr);
|
||||||
|
#endif
|
||||||
|
|
||||||
// hardware error callback
|
// hardware error callback
|
||||||
void (*hardware_error_callback)(uint8_t error);
|
void (*hardware_error_callback)(uint8_t error);
|
||||||
|
|
||||||
@ -910,7 +915,6 @@ typedef struct {
|
|||||||
// address and address_type of active create connection command (ACL, SCO, LE)
|
// address and address_type of active create connection command (ACL, SCO, LE)
|
||||||
bd_addr_t outgoing_addr;
|
bd_addr_t outgoing_addr;
|
||||||
bd_addr_type_t outgoing_addr_type;
|
bd_addr_type_t outgoing_addr_type;
|
||||||
|
|
||||||
} hci_stack_t;
|
} hci_stack_t;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user