diff --git a/plugins/mgmtops.c b/plugins/mgmtops.c
index 7c77be8..c060ada 100644
--- a/plugins/mgmtops.c
+++ b/plugins/mgmtops.c
return 0;
}
-static int mgmt_restore_powered(int index)
-{
- DBG("index %d", index);
- return -ENOSYS;
-}
-
static int mgmt_load_link_keys(int index, GSList *keys, gboolean debug_keys)
{
char *buf;
.set_did = mgmt_set_did,
.add_uuid = mgmt_add_uuid,
.remove_uuid = mgmt_remove_uuid,
- .restore_powered = mgmt_restore_powered,
.load_keys = mgmt_load_link_keys,
.set_io_capability = mgmt_set_io_capability,
.create_bonding = mgmt_create_bonding,
diff --git a/src/adapter.c b/src/adapter.c
index eeba44d..40f8130 100644
--- a/src/adapter.c
+++ b/src/adapter.c
struct btd_adapter {
uint16_t dev_id;
gboolean up;
+ gboolean already_up;
char *path; /* adapter object path */
bdaddr_t bdaddr; /* adapter Bluetooth Address */
uint32_t dev_class; /* Class of Device */
gboolean adapter_init(struct btd_adapter *adapter, gboolean up)
{
adapter->up = up;
+ adapter->already_up = up;
adapter->allow_name_changes = TRUE;
g_slist_free(adapter->pin_callbacks);
/* Return adapter to down state if it was not up on init */
- adapter_ops->restore_powered(adapter->dev_id);
+ if (!adapter->already_up && adapter->up)
+ adapter_ops->set_powered(adapter->dev_id, FALSE);
}
uint16_t adapter_get_dev_id(struct btd_adapter *adapter)
diff --git a/src/adapter.h b/src/adapter.h
index 4c39a7b..73cd770 100644
--- a/src/adapter.h
+++ b/src/adapter.h
uint16_t version, uint16_t source);
int (*add_uuid) (int index, uuid_t *uuid, uint8_t svc_hint);
int (*remove_uuid) (int index, uuid_t *uuid);
- int (*restore_powered) (int index);
int (*load_keys) (int index, GSList *keys, gboolean debug_keys);
int (*set_io_capability) (int index, uint8_t io_capability);
int (*create_bonding) (int index, bdaddr_t *bdaddr,