linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Fix unpair device when disconnected for No Bonding
@ 2011-06-20  9:23 Dmitriy Paliy
  2011-06-20  9:31 ` Johan Hedberg
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitriy Paliy @ 2011-06-20  9:23 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Dmitriy Paliy

Fix Paired property of device to be false if 'No Bonding' authentication
is used. This property is set to false when device is disconnected and
no link key is stored. Otherwise, there can be cases when device is still
valid and being claimed as paired without available bonding information.

For instanse, use of CreateDevice method call and obex client file
transfer is such use case.
---
 src/device.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/device.c b/src/device.c
index ae6a0d5..e886448 100644
--- a/src/device.c
+++ b/src/device.c
@@ -830,6 +830,14 @@ void device_remove_connection(struct btd_device *device, DBusConnection *conn)
 		device->disconnects = g_slist_remove(device->disconnects, msg);
 	}
 
+	if (device_is_paired(device)) {
+		bdaddr_t src;
+
+		adapter_get_address(device->adapter, &src);
+		if (read_link_key(&src, &device->bdaddr, NULL, NULL))
+			device_set_paired(device, FALSE);
+	}
+
 	emit_property_changed(conn, device->path,
 					DEVICE_INTERFACE, "Connected",
 					DBUS_TYPE_BOOLEAN, &device->connected);
-- 
1.7.4.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-06-20 10:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-20  9:23 [PATCH] Fix unpair device when disconnected for No Bonding Dmitriy Paliy
2011-06-20  9:31 ` Johan Hedberg
2011-06-20  9:55   ` Dmitriy Paliy
2011-06-20 10:03     ` Johan Hedberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).