static struct btd_advertising * advertising_manager_create(struct btd_adapter *adapter) { struct btd_advertising *manager; manager = new0(struct btd_advertising, 1); if (!manager) return NULL; manager->adapter = adapter; manager->mgmt = mgmt_new_default(); if (!manager->mgmt) { error("Failed to access management interface"); free(manager); return NULL; } manager->mgmt_index = btd_adapter_get_index(adapter); if (!mgmt_send(manager->mgmt, MGMT_OP_READ_ADV_FEATURES, manager->mgmt_index, 0, NULL, read_adv_features_callback, manager, NULL)) { error("Failed to read advertising features"); advertising_manager_destroy(manager); return NULL; } manager->ads = queue_new(); return manager; }
static void set_fast_connectable(struct btd_adapter *adapter, gpointer user_data) { gboolean enable = GPOINTER_TO_UINT(user_data); if (btd_adapter_set_fast_connectable(adapter, enable)) error("Changing fast connectable for hci%d failed", btd_adapter_get_index(adapter)); }