Diff between e2741eedc38597649f64218761042b6c5a133ca0 and 48231ada62027b6419ade4a103887a58af4e3f8e

Changed Files

File Additions Deletions Status
src/device.c +13 -5 modified

Full Patch

diff --git a/src/device.c b/src/device.c
index f72a72b..67c4e6d 100644
--- a/src/device.c
+++ b/src/device.c
@@ -4002,13 +4002,21 @@ void device_set_paired(struct btd_device *dev, uint8_t bdaddr_type)
 	if (state->paired)
 		return;
 
-	if (!state->svc_resolved)
+	state->paired = true;
+
+	/* If the other bearer state was alraedy true we don't need to
+	 * send any property signals.
+	 */
+	if (dev->bredr_state.paired == dev->le_state.paired)
+		return;
+
+	if (!state->svc_resolved) {
 		dev->pending_paired = true;
-	else if (dev->bredr_state.paired != dev->le_state.paired)
-		g_dbus_emit_property_changed(dbus_conn, dev->path,
-						DEVICE_INTERFACE, "Paired");
+		return;
+	}
 
-	state->paired = true;
+	g_dbus_emit_property_changed(dbus_conn, dev->path,
+						DEVICE_INTERFACE, "Paired");
 }
 
 static void device_auth_req_free(struct btd_device *device)