From 2b480bd5660bc27b9340118c87b47acbbc6e109d Mon Sep 17 00:00:00 2001
From: Yu Liu <yudiliu@google.com>
Date: Mon, 24 Aug 2020 11:19:03 -0700
Subject: [PATCH] adapter: Mark device temporary state pairing failure

This caused the device hanging around as a discovered device forever
even if it is turned off or not in present.
---
 src/device.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/device.c b/src/device.c
index f59b6c1d0..df440ce09 100644
--- a/src/device.c
+++ b/src/device.c
@@ -6028,6 +6028,14 @@ void device_bonding_complete(struct btd_device *device, uint8_t bdaddr_type,
 
 	if (status) {
 		device_cancel_authentication(device, TRUE);
+
+		/* Put the device back to the temporary state so that it will be
+		 * treated as a newly discovered device.
+		 */
+		if (!device_is_paired(device, bdaddr_type) &&
+				!device_is_trusted(device))
+			btd_device_set_temporary(device, true);
+
 		device_bonding_failed(device, status);
 		return;
 	}
-- 
2.20.1

