return -EINVAL;
}
- adapter->adv_manager = btd_adv_manager_new(adapter);
+ adapter->adv_manager = btd_adv_manager_new(adapter, adapter->mgmt);
db = btd_gatt_database_get_db(adapter->database);
adapter->db_id = gatt_db_register(db, services_modified,
*
*/
-#include "advertising.h"
-
#include <stdint.h>
#include <stdbool.h>
#include <errno.h>
#include "src/shared/mgmt.h"
#include "src/shared/queue.h"
#include "src/shared/util.h"
+#include "advertising.h"
#define LE_ADVERTISING_MGR_IFACE "org.bluez.LEAdvertisingManager1"
#define LE_ADVERTISEMENT_IFACE "org.bluez.LEAdvertisement1"
remove_advertising(manager, 0);
}
-static struct btd_adv_manager *manager_create(struct btd_adapter *adapter)
+static struct btd_adv_manager *manager_create(struct btd_adapter *adapter,
+ struct mgmt *mgmt)
{
struct btd_adv_manager *manager;
manager = new0(struct btd_adv_manager, 1);
manager->adapter = adapter;
- manager->mgmt = mgmt_new_default();
+ manager->mgmt = mgmt_ref(mgmt);
if (!manager->mgmt) {
error("Failed to access management interface");
return NULL;
}
-struct btd_adv_manager *btd_adv_manager_new(struct btd_adapter *adapter)
+struct btd_adv_manager *btd_adv_manager_new(struct btd_adapter *adapter,
+ struct mgmt *mgmt)
{
struct btd_adv_manager *manager;
- if (!adapter)
+ if (!adapter || !mgmt)
return NULL;
- manager = manager_create(adapter);
+ manager = manager_create(adapter, mgmt);
if (!manager)
return NULL;
struct btd_adapter;
struct btd_adv_manager;
-struct btd_adv_manager *btd_adv_manager_new(struct btd_adapter *adapter);
+struct btd_adv_manager *btd_adv_manager_new(struct btd_adapter *adapter,
+ struct mgmt *mgmt);
void btd_adv_manager_destroy(struct btd_adv_manager *manager);
void btd_adv_manager_refresh(struct btd_adv_manager *manager);