Diff between 4ef8aae454865a35ea9deaee8fb4bdabb7ad758b and 8136e7ba9a678d8a8459ac7bbdf939ab436ae21f

Changed Files

File Additions Deletions Status
plugins/mgmtops.c +8 -7 modified

Full Patch

diff --git a/plugins/mgmtops.c b/plugins/mgmtops.c
index 3ea8f6d..f049c64 100644
--- a/plugins/mgmtops.c
+++ b/plugins/mgmtops.c
@@ -989,19 +989,20 @@ static void read_info_complete(int sk, uint16_t index, void *buf, size_t len)
 		return;
 	}
 
+	adapter_name_changed(adapter, (char *) rp->name);
+
 	btd_adapter_get_mode(adapter, &mode, NULL, NULL);
-	if (mode == MODE_OFF) {
+	if (mode == MODE_OFF && mgmt_powered(info->current_settings)) {
 		mgmt_set_powered(index, FALSE);
 		return;
 	}
 
-	if (mgmt_powered(info->current_settings)) {
-		mgmt_update_powered(adapter, info->current_settings);
-		get_connections(sk, index);
-	} else
+	if (mode != MODE_OFF && !mgmt_powered(info->current_settings))
 		mgmt_set_powered(index, TRUE);
-
-	adapter_name_changed(adapter, (char *) rp->name);
+	else {
+		get_connections(sk, index);
+		btd_adapter_start(adapter);
+	}
 
 	btd_adapter_unref(adapter);
 }