diff --git a/src/advertising.c b/src/advertising.c
index cd78584..0eb489a 100644
--- a/src/advertising.c
+++ b/src/advertising.c
manager->max_adv_len = feat->max_adv_data_len;
manager->max_ads = feat->max_instances;
+
+ if (manager->max_ads == 0)
+ return;
+
+ if (!g_dbus_register_interface(btd_get_dbus_connection(),
+ adapter_get_path(manager->adapter),
+ LE_ADVERTISING_MGR_IFACE,
+ methods, NULL, NULL, manager,
+ advertising_manager_destroy))
+ error("Failed to register " LE_ADVERTISING_MGR_IFACE);
}
static struct btd_advertising *
return NULL;
}
- if (!g_dbus_register_interface(btd_get_dbus_connection(),
- adapter_get_path(adapter),
- LE_ADVERTISING_MGR_IFACE,
- methods, NULL, NULL, manager,
- advertising_manager_destroy)) {
- error("Failed to register " LE_ADVERTISING_MGR_IFACE);
- free(manager);
- return NULL;
- }
-
manager->ads = queue_new();
manager->next_instance_id = 1;