diff --git a/src/ble/gatt_client.c b/src/ble/gatt_client.c index 1e43ac91f..652741d93 100644 --- a/src/ble/gatt_client.c +++ b/src/ble/gatt_client.c @@ -2836,6 +2836,14 @@ static const hci_event_t gatt_client_connected = { static const hci_event_t gatt_client_disconnected = { GATT_EVENT_DISCONNECTED, 0, "H" }; + +static void gatt_client_emit_connected(btstack_packet_handler_t callback, uint8_t status, bd_addr_t addr, + hci_con_handle_t con_handle) { + uint8_t buffer[20]; + uint16_t len = hci_event_create_from_template_and_arguments(buffer, sizeof(buffer), &gatt_client_connected, status, addr, con_handle); + (*callback)(HCI_EVENT_PACKET, 0, buffer, len); +} + #endif #ifdef ENABLE_GATT_OVER_CLASSIC @@ -2885,11 +2893,7 @@ static void gatt_client_classic_handle_connected(gatt_client_t * gatt_client, ui btstack_linked_list_remove(&gatt_client_connections, (btstack_linked_item_t *) gatt_client); btstack_memory_gatt_client_free(gatt_client); } - - uint8_t buffer[20]; - uint16_t len = hci_event_create_from_template_and_arguments(buffer, sizeof(buffer), &gatt_client_connected, status, addr, - con_handle); - (*callback)(HCI_EVENT_PACKET, 0, buffer, len); + gatt_client_emit_connected(callback, status, addr, con_handle); } static void gatt_client_classic_handle_disconnected(gatt_client_t * gatt_client){ @@ -3056,10 +3060,7 @@ static void gatt_client_le_enhanced_handle_connected(gatt_client_t * gatt_client gatt_client->eatt_state = GATT_CLIENT_EATT_IDLE; } - uint8_t buffer[20]; - uint16_t len = hci_event_create_from_template_and_arguments(buffer, sizeof(buffer), &gatt_client_connected, status, gatt_client->addr, - gatt_client->con_handle); - (*gatt_client->callback)(HCI_EVENT_PACKET, 0, buffer, len); + gatt_client_emit_connected(gatt_client->callback, status, gatt_client->addr, gatt_client->con_handle); } // single channel disconnected