From eb106d4727b3b1bce126d9d3193aedd4b4c9ebf7 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Tue, 4 Dec 2012 11:07:24 +0200 Subject: [PATCH] core: Remove event.c as middle-man for connection complete events --- src/event.c | 20 -------------------- src/event.h | 3 --- src/mgmt.c | 20 ++++++++++++++++---- 3 files changed, 16 insertions(+), 27 deletions(-) diff --git a/src/event.c b/src/event.c index 8b41a127c..545e99171 100644 --- a/src/event.c +++ b/src/event.c @@ -276,26 +276,6 @@ int btd_event_ltk_notify(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type, return 0; } -void btd_event_conn_complete(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type, - const char *name, uint32_t class) -{ - struct btd_adapter *adapter; - struct btd_device *device; - - if (!get_adapter_and_device(local, peer, &adapter, &device, TRUE)) - return; - - if (class != 0) - device_set_class(device, class); - - device_set_addr_type(device, bdaddr_type); - - adapter_add_connection(adapter, device); - - if (name != NULL) - btd_event_remote_name(local, peer, name); -} - void btd_event_conn_failed(bdaddr_t *local, bdaddr_t *peer, uint8_t status) { struct btd_adapter *adapter; diff --git a/src/event.h b/src/event.h index 1381c94f7..41ec202e2 100644 --- a/src/event.h +++ b/src/event.h @@ -24,9 +24,6 @@ void btd_event_remote_name(const bdaddr_t *local, bdaddr_t *peer, const char *name); -void btd_event_conn_complete(bdaddr_t *local, bdaddr_t *peer, - uint8_t bdaddr_type, const char *name, - uint32_t class); void btd_event_conn_failed(bdaddr_t *local, bdaddr_t *peer, uint8_t status); void btd_event_disconn_complete(bdaddr_t *local, bdaddr_t *peer); void btd_event_returned_link_key(bdaddr_t *local, bdaddr_t *peer); diff --git a/src/mgmt.c b/src/mgmt.c index e0bc80818..e55f28e45 100644 --- a/src/mgmt.c +++ b/src/mgmt.c @@ -495,6 +495,8 @@ static void mgmt_device_connected(int sk, uint16_t index, void *buf, size_t len) struct mgmt_ev_device_connected *ev = buf; struct eir_data eir_data; struct controller_info *info; + struct btd_adapter *adapter; + struct btd_device *device; uint16_t eir_len; char addr[18]; @@ -520,14 +522,24 @@ static void mgmt_device_connected(int sk, uint16_t index, void *buf, size_t len) info = &controllers[index]; + if (!get_adapter_and_device(&info->bdaddr, &ev->addr.bdaddr, + &adapter, &device, true)) + return; + memset(&eir_data, 0, sizeof(eir_data)); if (eir_len > 0) eir_parse(&eir_data, ev->eir, eir_len); - btd_event_conn_complete(&info->bdaddr, &ev->addr.bdaddr, - ev->addr.type, - eir_data.name, - eir_data.class); + if (eir_data.class != 0) + device_set_class(device, eir_data.class); + + device_set_addr_type(device, ev->addr.type); + + adapter_add_connection(adapter, device); + + if (eir_data.name != NULL) + btd_event_remote_name(&info->bdaddr, &ev->addr.bdaddr, + eir_data.name); eir_data_free(&eir_data); } -- 2.47.3