diff --git a/plugins/mgmtops.c b/plugins/mgmtops.c
index 3ea8f6d..f049c64 100644
--- a/plugins/mgmtops.c
+++ b/plugins/mgmtops.c
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);
}