From 11ec0c1e5e8610f1f50ee59d9d72dbd5ad11d612 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Tue, 4 Dec 2012 11:11:36 +0200 Subject: [PATCH] core: Remove event.c as middle-man for connection failed events --- src/event.c | 20 -------------------- src/event.h | 1 - src/mgmt.c | 15 +++++++++++++-- 3 files changed, 13 insertions(+), 23 deletions(-) diff --git a/src/event.c b/src/event.c index 545e99171..00119d364 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_failed(bdaddr_t *local, bdaddr_t *peer, uint8_t status) -{ - struct btd_adapter *adapter; - struct btd_device *device; - - DBG("status 0x%02x", status); - - if (!get_adapter_and_device(local, peer, &adapter, &device, FALSE)) - return; - - if (!device) - return; - - if (device_is_bonding(device, NULL)) - device_cancel_bonding(device, status); - - if (device_is_temporary(device)) - adapter_remove_device(adapter, device, TRUE); -} - void btd_event_disconn_complete(bdaddr_t *local, bdaddr_t *peer) { struct btd_adapter *adapter; diff --git a/src/event.h b/src/event.h index 41ec202e2..f98669c0c 100644 --- a/src/event.h +++ b/src/event.h @@ -24,7 +24,6 @@ void btd_event_remote_name(const bdaddr_t *local, bdaddr_t *peer, const char *name); -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); void btd_event_device_blocked(bdaddr_t *local, bdaddr_t *peer); diff --git a/src/mgmt.c b/src/mgmt.c index e55f28e45..ff3333516 100644 --- a/src/mgmt.c +++ b/src/mgmt.c @@ -580,6 +580,8 @@ static void mgmt_connect_failed(int sk, uint16_t index, void *buf, size_t len) { struct mgmt_ev_connect_failed *ev = buf; struct controller_info *info; + struct btd_adapter *adapter; + struct btd_device *device; char addr[18]; if (len < sizeof(*ev)) { @@ -598,10 +600,19 @@ static void mgmt_connect_failed(int sk, uint16_t index, void *buf, size_t len) info = &controllers[index]; - btd_event_conn_failed(&info->bdaddr, &ev->addr.bdaddr, ev->status); + if (!get_adapter_and_device(&info->bdaddr, &ev->addr.bdaddr, + &adapter, &device, false)) + return; + + if (device) { + if (device_is_bonding(device, NULL)) + device_cancel_bonding(device, ev->status); + if (device_is_temporary(device)) + adapter_remove_device(adapter, device, TRUE); + } /* In the case of security mode 3 devices */ - bonding_complete(info, &ev->addr.bdaddr, ev->status); + adapter_bonding_complete(adapter, &ev->addr.bdaddr, ev->status); } int mgmt_pincode_reply(int index, const bdaddr_t *bdaddr, const char *pin, -- 2.47.3