Don't force device creation for pairing failure events
A pairing failure could be caused by switching Bluetooth off or a
disconnect forced by cancelling the pairing attempt so it doesn't make
sense to re-create a device object in these cases.
diff --git a/src/event.c b/src/event.c
index b1054d7..123cb6a 100644
--- a/src/event.c
+++ b/src/event.c
@@ -283,10 +283,16 @@
{
struct btd_adapter *adapter;
struct btd_device *device;
+ gboolean create;
DBG("status=%02x", status);
- if (!get_adapter_and_device(local, peer, &adapter, &device, TRUE))
+ create = status ? FALSE : TRUE;
+
+ if (!get_adapter_and_device(local, peer, &adapter, &device, create))
+ return;
+
+ if (!device)
return;
if (status == 0)
@@ -310,10 +316,16 @@
{
struct btd_adapter *adapter;
struct btd_device *device;
+ gboolean create;
DBG("status=%02x", status);
- if (!get_adapter_and_device(local, peer, &adapter, &device, TRUE))
+ create = status ? FALSE : TRUE;
+
+ if (!get_adapter_and_device(local, peer, &adapter, &device, create))
+ return;
+
+ if (!device)
return;
device_simple_pairing_complete(device, status);