From e4d0a3b9051923b015ce633f9385e5af126211fe Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Wed, 8 Oct 2008 23:54:10 +0200 Subject: Fix the service discovery-upon-pairing logic The original code seems to try to handle the situation of two opposite directed pairing attempts (remote side starts dedicated bonding with us but someone calls CreatePairedDevice on our side at the same time). I'm not sure how likely this actually is or if it can even succeed, but the existing logic in the code was nevertheless wrong. After this patch is at least in theory makes sense to me (and is better commented if I forget what I was thinking when I wrote it). --- src/dbus-hci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/dbus-hci.c') diff --git a/src/dbus-hci.c b/src/dbus-hci.c index 2ae307e8..3abf6bdc 100644 --- a/src/dbus-hci.c +++ b/src/dbus-hci.c @@ -611,7 +611,8 @@ void hcid_dbus_bonding_process_complete(bdaddr_t *local, bdaddr_t *peer, /* If this is a new pairing send the appropriate signal for it * and proceed with service discovery */ if (status == 0) { - if (device_set_paired(connection, device, bonding) && bonding) + device_set_paired(connection, device, bonding); + if (bonding) adapter_free_bonding_request(adapter); return; } -- cgit