diff --git a/src/profile.c b/src/profile.c
index e1bebf1..ea188f3 100644
--- a/src/profile.c
+++ b/src/profile.c
int btd_profile_register(struct btd_profile *profile)
{
+ if (profile->experimental && !(g_dbus_get_flags() &
+ G_DBUS_FLAG_ENABLE_EXPERIMENTAL)) {
+ DBG("D-Bus experimental not enabled");
+ return -ENOTSUP;
+ }
+
profiles = g_slist_append(profiles, profile);
return 0;
}
diff --git a/src/profile.h b/src/profile.h
index 6827f84..6871f2f 100644
--- a/src/profile.h
+++ b/src/profile.h
*/
bool external;
+ /* Indicates the profile is experimental and shall only be registered
+ * when experimental has been enabled (see: main.conf:Experimental).
+ */
+ bool experimental;
+
int (*device_probe) (struct btd_service *service);
void (*device_remove) (struct btd_service *service);