summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2023-05-16 10:33:24 -0700
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2023-05-16 10:35:44 -0700
commit28917a3c7a4ec1078e5cb4adf2652e36f65f6034 (patch)
tree4f5a77baedec9a7cc69f1fc9fb0338ae04d4a2f1
parentce7cd9fb0611eb3ddf74707268d82005161ffb99 (diff)
downloadbluez-28917a3c7a4ec1078e5cb4adf2652e36f65f6034.tar.gz
adapter: Add support for experimental flag
This adds experimental field to btd_adapter_driver so the plugin can indicate drivers that depends on experimental to be enabled.
-rw-r--r--src/adapter.c6
-rw-r--r--src/adapter.h5
2 files changed, 11 insertions, 0 deletions
diff --git a/src/adapter.c b/src/adapter.c
index cc7f891d9..74ed52468 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -7447,6 +7447,12 @@ static void adapter_stop(struct btd_adapter *adapter)
int btd_register_adapter_driver(struct btd_adapter_driver *driver)
{
+ if (driver->experimental && !(g_dbus_get_flags() &
+ G_DBUS_FLAG_ENABLE_EXPERIMENTAL)) {
+ DBG("D-Bus experimental not enabled");
+ return -ENOTSUP;
+ }
+
adapter_drivers = g_slist_append(adapter_drivers, driver);
if (driver->probe == NULL)
diff --git a/src/adapter.h b/src/adapter.h
index a45ac1bab..32e49a933 100644
--- a/src/adapter.h
+++ b/src/adapter.h
@@ -127,6 +127,11 @@ struct btd_adapter_driver {
struct btd_device *device);
void (*device_resolved)(struct btd_adapter *adapter,
struct btd_device *device);
+
+ /* Indicates the driver is experimental and shall only be registered
+ * when experimental has been enabled (see: main.conf:Experimental).
+ */
+ bool experimental;
};
void device_resolved_drivers(struct btd_adapter *adapter,