From baafe60d9cbbd9e7939fb6d050d9896731d1ac70 Mon Sep 17 00:00:00 2001 From: Sonny Sasaka Date: Fri, 27 Mar 2020 17:33:18 -0700 Subject: [PATCH] core/device: Handle Just-Works auto-accept The kernel starts to always request confirmation to BlueZ daemon for Just-Works pairing. In this patch the daemon does auto-accept if the client has clearly indicated a pairing intent by calling the Pair() D-Bus API. --- src/device.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/device.c b/src/device.c index 69f98e488..5f9ad227d 100644 --- a/src/device.c +++ b/src/device.c @@ -6168,12 +6168,23 @@ int device_confirm_passkey(struct btd_device *device, uint8_t type, auth->passkey = passkey; - if (confirm_hint) + if (confirm_hint) { + if (device->bonding != NULL) { + /* We know the client has indicated the intent to pair + * with the peer device, so we can auto-accept. + */ + btd_adapter_confirm_reply(device->adapter, + &device->bdaddr, + type, TRUE); + return 0; + } + err = agent_request_authorization(auth->agent, device, confirm_cb, auth, NULL); - else + } else { err = agent_request_confirmation(auth->agent, device, passkey, confirm_cb, auth, NULL); + } if (err < 0) { if (err == -EINPROGRESS) { -- 2.47.3