[PATCH BlueZ v3] Fix remove temporary link key for No Bonding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This fixes regression caused by 33cdfcb0fabcfb5260953a13ae277b5abe9a322d.
Temporary link key should be removed after device is disconnected if
bonding information is not stored in file system.

Currently, the key is deleted only when paired device is removed, or
adapter is powered off. In case of No Bonding authentication, device is
not paired after disconnection, which results in link key left in memory.

On the other hand, device is not necessarily removed after disconnection
that also leaves unneeded temporary link key in memory. Therefore,
btd_adapter_remove_bonding is moved to device_set_paired(device, FALSE)
covering both cases.
---
 src/device.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/device.c b/src/device.c
index 9dd657c..96e798f 100644
--- a/src/device.c
+++ b/src/device.c
@@ -993,7 +993,6 @@ static void device_remove_stored(struct btd_device *device)
 		delete_entry(&src, "aliases", addr);
 		device_set_bonded(device, FALSE);
 		device_set_paired(device, FALSE);
-		btd_adapter_remove_bonding(device->adapter, &device->bdaddr);
 	}
 	delete_entry(&src, "profiles", addr);
 	delete_entry(&src, "trusts", addr);
@@ -2038,6 +2037,9 @@ void device_set_paired(struct btd_device *device, gboolean value)
 	if (device->paired == value)
 		return;
 
+	if (!value)
+		btd_adapter_remove_bonding(device->adapter, &device->bdaddr);
+
 	device->paired = value;
 
 	emit_property_changed(conn, device->path, DEVICE_INTERFACE, "Paired",
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux