Diff between a70ad3e32dc75dcc07f6e4e9bf7addf99405ee58 and 3bdc3d0f00ab0440071f319e67676089b3672e54

Changed Files

File Additions Deletions Status
src/device.c +9 -1 modified

Full Patch

diff --git a/src/device.c b/src/device.c
index 18d0d46..bd513ec 100644
--- a/src/device.c
+++ b/src/device.c
@@ -1440,10 +1440,18 @@ static void device_svc_resolved(struct btd_device *dev, int err)
 	DBusMessage *reply;
 	struct browse_req *req = dev->browse;
 
+	DBG("%s err %d", dev->path, err);
+
 	dev->svc_resolved = true;
-	dev->svc_refreshed = true;
 	dev->browse = NULL;
 
+	/* Disconnection notification can happen before this function
+	 * gets called, so don't set svc_refreshed for a disconnected
+	 * device.
+	 */
+	if (dev->connected)
+		dev->svc_refreshed = true;
+
 	g_slist_free_full(dev->eir_uuids, g_free);
 	dev->eir_uuids = NULL;