From 7ac7573780a753d62a810eae6c50a7dbc6076f9b Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Tue, 4 Dec 2012 11:21:52 +0200 Subject: [PATCH] core: Remove event.c as middle-man for device unpaired events --- src/event.c | 16 ---------------- src/event.h | 1 - src/mgmt.c | 16 +++++++++++++++- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/event.c b/src/event.c index 783deb555..adbe7aa12 100644 --- a/src/event.c +++ b/src/event.c @@ -276,22 +276,6 @@ int btd_event_ltk_notify(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type, return 0; } -void btd_event_device_unpaired(bdaddr_t *local, bdaddr_t *peer) -{ - struct btd_adapter *adapter; - struct btd_device *device; - - if (!get_adapter_and_device(local, peer, &adapter, &device, FALSE)) - return; - - device_set_temporary(device, TRUE); - - if (device_is_connected(device)) - device_request_disconnect(device, NULL); - else - adapter_remove_device(adapter, device, TRUE); -} - void btd_event_returned_link_key(bdaddr_t *local, bdaddr_t *peer) { struct btd_adapter *adapter; diff --git a/src/event.h b/src/event.h index 487421705..3b90ffc21 100644 --- a/src/event.h +++ b/src/event.h @@ -25,7 +25,6 @@ void btd_event_remote_name(const bdaddr_t *local, bdaddr_t *peer, const char *name); void btd_event_returned_link_key(bdaddr_t *local, bdaddr_t *peer); -void btd_event_device_unpaired(bdaddr_t *local, bdaddr_t *peer); int btd_event_link_key_notify(bdaddr_t *local, bdaddr_t *peer, uint8_t *key, uint8_t key_type, uint8_t pin_length); int btd_event_ltk_notify(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type, diff --git a/src/mgmt.c b/src/mgmt.c index 961cab90e..26ee8cae6 100644 --- a/src/mgmt.c +++ b/src/mgmt.c @@ -1860,6 +1860,8 @@ static void mgmt_device_unblocked(int sk, uint16_t index, void *buf, size_t len) static void mgmt_device_unpaired(int sk, uint16_t index, void *buf, size_t len) { struct controller_info *info; + struct btd_adapter *adapter; + struct btd_device *device; struct mgmt_ev_device_unpaired *ev = buf; char addr[18]; @@ -1878,7 +1880,19 @@ static void mgmt_device_unpaired(int sk, uint16_t index, void *buf, size_t len) info = &controllers[index]; - btd_event_device_unpaired(&info->bdaddr, &ev->addr.bdaddr); + if (!get_adapter_and_device(&info->bdaddr, &ev->addr.bdaddr, + &adapter, &device, false)) + return; + + if (!device) + return; + + device_set_temporary(device, TRUE); + + if (device_is_connected(device)) + device_request_disconnect(device, NULL); + else + adapter_remove_device(adapter, device, TRUE); } static void mgmt_new_ltk(int sk, uint16_t index, void *buf, size_t len) -- 2.47.3