From dab752caf71b7c728ac00a7a642a91a5bdc91700 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Tue, 4 Dec 2012 10:50:55 +0200 Subject: [PATCH] core: Remove event.c as a middle-man for passkey request based pairing --- src/event.c | 11 ----------- src/event.h | 1 - src/mgmt.c | 10 ++++++++-- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/event.c b/src/event.c index 9ed224b41..f31fd05e7 100644 --- a/src/event.c +++ b/src/event.c @@ -83,17 +83,6 @@ static gboolean get_adapter_and_device(const bdaddr_t *src, bdaddr_t *dst, return TRUE; } -int btd_event_user_passkey(bdaddr_t *sba, bdaddr_t *dba) -{ - struct btd_adapter *adapter; - struct btd_device *device; - - if (!get_adapter_and_device(sba, dba, &adapter, &device, TRUE)) - return -ENODEV; - - return device_request_passkey(device); -} - int btd_event_user_notify(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey, uint8_t entered) { diff --git a/src/event.h b/src/event.h index f74ed2fd6..bbda735e1 100644 --- a/src/event.h +++ b/src/event.h @@ -34,7 +34,6 @@ void btd_event_conn_complete(bdaddr_t *local, bdaddr_t *peer, 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); -int btd_event_user_passkey(bdaddr_t *sba, bdaddr_t *dba); int btd_event_user_notify(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey, uint8_t entered); void btd_event_device_blocked(bdaddr_t *local, bdaddr_t *peer); diff --git a/src/mgmt.c b/src/mgmt.c index b09faaff2..864b2bf99 100644 --- a/src/mgmt.c +++ b/src/mgmt.c @@ -777,6 +777,8 @@ static void mgmt_passkey_request(int sk, uint16_t index, void *buf, size_t len) { struct mgmt_ev_user_passkey_request *ev = buf; struct controller_info *info; + struct btd_adapter *adapter; + struct btd_device *device; char addr[18]; int err; @@ -796,9 +798,13 @@ static void mgmt_passkey_request(int sk, uint16_t index, void *buf, size_t len) info = &controllers[index]; - err = btd_event_user_passkey(&info->bdaddr, &ev->addr.bdaddr); + if (!get_adapter_and_device(&info->bdaddr, &ev->addr.bdaddr, + &adapter, &device, true)) + return; + + err = device_request_passkey(device); if (err < 0) { - error("btd_event_user_passkey: %s", strerror(-err)); + error("device_request_passkey: %s", strerror(-err)); mgmt_passkey_reply(index, &ev->addr.bdaddr, ev->addr.type, INVALID_PASSKEY); } -- 2.47.3