Fix : slave long term key is not loaded 72/226572/2 accepted/tizen/unified/20200305.123315 submit/tizen/20200304.063814
authorinjun.yang <injun.yang@samsung.com>
Tue, 3 Mar 2020 08:47:28 +0000 (17:47 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Wed, 4 Mar 2020 03:17:48 +0000 (03:17 +0000)
[Model] All
[BinType] AP
[Customer] OPEN

[Issue#] N/A
[Request] Internal
[Occurrence Version] N/A

[Problem] Request LE pairing again to paired device.
[Cause & Measure] After BT off/on, slave long term key is not loaded.
[Checking Method] Test with iOS GM

[Team] Convergence BT
[Developer] Injun Yang
[Solution company] Samsung
[Change Type] Specification change

Change-Id: I4191331b69b892891e02f904554eb7733e3eabe6

src/adapter.c

index a293466..52ecbd6 100644 (file)
@@ -8583,6 +8583,14 @@ static void load_devices(struct btd_adapter *adapter)
                                        ltks = g_slist_append(ltks, ltk_info);
                        }
 
+                       if (slave_ltk_info) {
+                               ltks = g_slist_remove(ltks, slave_ltk_info);
+                               slave_ltk_info = get_slave_ltk_info(key_file,
+                                               idaddr, bdaddr_type);
+                               if (slave_ltk_info)
+                                       ltks = g_slist_append(ltks, slave_ltk_info);
+                       }
+
                        if (irk_info) {
                                str2ba(idaddr, &irk_info->bdaddr);
                                device_set_irk_value(device, irk_info->val);