diff --git a/src/l2cap.c b/src/l2cap.c index 2baff4628..ca2ff8d7e 100644 --- a/src/l2cap.c +++ b/src/l2cap.c @@ -590,7 +590,7 @@ l2cap_service_t * l2cap_get_service(uint16_t psm){ return NULL; } -void l2cap_register_service_internal(connection_t *connection, uint16_t psm, uint16_t mtu){ +void l2cap_register_service_internal(connection_t *connection, btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu){ // check for alread registered psm // TODO: emit error event l2cap_service_t *service = l2cap_get_service(psm); if (service) return; @@ -603,8 +603,7 @@ void l2cap_register_service_internal(connection_t *connection, uint16_t psm, uin service->psm = psm; service->mtu = mtu; service->connection = connection; - service->packet_handler = NULL; - + service->packet_handler = packet_handler; // add to services list linked_list_add(&l2cap_services, (linked_item_t *) service); diff --git a/src/l2cap.h b/src/l2cap.h index 706d8b1ea..a2f7263a7 100644 --- a/src/l2cap.h +++ b/src/l2cap.h @@ -80,7 +80,7 @@ typedef struct { connection_t * connection; // internal connection - btstack_packet_handler_t * packet_handler; + btstack_packet_handler_t packet_handler; } l2cap_channel_t; @@ -99,7 +99,7 @@ typedef struct { connection_t *connection; // internal connection - btstack_packet_handler_t * packet_handler; + btstack_packet_handler_t packet_handler; } l2cap_service_t; @@ -118,7 +118,7 @@ void l2cap_finialize_channel_close(l2cap_channel_t *channel); void l2cap_close_connection(connection_t *connection); l2cap_service_t * l2cap_get_service(uint16_t psm); -void l2cap_register_service_internal(connection_t *connection, uint16_t psm, uint16_t); +void l2cap_register_service_internal(connection_t *connection, btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu); void l2cap_unregister_service_internal(connection_t *connection, uint16_t psm); void l2cap_accept_connection_internal(uint16_t local_cid);