From 5dba69086d33480047969146200f489f05ccf307 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Fri, 14 May 2021 14:07:42 -0700 Subject: [PATCH] main.conf: Add option to enable experimental features The adds options Experimental which is the equivalent to -E/--experimental command line option. Fixes https://github.com/bluez/bluez/issues/132 --- src/btd.h | 1 + src/main.c | 13 ++++++++++--- src/main.conf | 4 ++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/btd.h b/src/btd.h index a3247e4fd..6af54a99a 100644 --- a/src/btd.h +++ b/src/btd.h @@ -105,6 +105,7 @@ struct btd_opts { gboolean debug_keys; gboolean fast_conn; gboolean refresh_discovery; + gboolean experimental; uint16_t did_source; uint16_t did_vendor; diff --git a/src/main.c b/src/main.c index 94141b1e4..37ed4568b 100644 --- a/src/main.c +++ b/src/main.c @@ -715,6 +715,13 @@ static void parse_config(GKeyFile *config) else btd_opts.refresh_discovery = boolean; + boolean = g_key_file_get_boolean(config, "General", + "Experimental", &err); + if (err) + g_clear_error(&err); + else + btd_opts.experimental = boolean; + str = g_key_file_get_string(config, "GATT", "Cache", &err); if (err) { DBG("%s", err->message); @@ -813,6 +820,7 @@ static void init_defaults(void) btd_opts.name_resolv = TRUE; btd_opts.debug_keys = FALSE; btd_opts.refresh_discovery = TRUE; + btd_opts.experimental = false; btd_opts.defaults.num_entries = 0; btd_opts.defaults.br.page_scan_type = 0xFFFF; @@ -892,7 +900,6 @@ static char *option_configfile = NULL; static gboolean option_compat = FALSE; static gboolean option_detach = TRUE; static gboolean option_version = FALSE; -static gboolean option_experimental = FALSE; static void free_options(void) { @@ -976,7 +983,7 @@ static GOptionEntry options[] = { "Specify an explicit path to the config file", "FILE"}, { "compat", 'C', 0, G_OPTION_ARG_NONE, &option_compat, "Provide deprecated command line interfaces" }, - { "experimental", 'E', 0, G_OPTION_ARG_NONE, &option_experimental, + { "experimental", 'E', 0, G_OPTION_ARG_NONE, &btd_opts.experimental, "Enable experimental interfaces" }, { "nodetach", 'n', G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &option_detach, @@ -1043,7 +1050,7 @@ int main(int argc, char *argv[]) exit(1); } - if (option_experimental) + if (btd_opts.experimental) gdbus_flags = G_DBUS_FLAG_ENABLE_EXPERIMENTAL; g_dbus_set_flags(gdbus_flags); diff --git a/src/main.conf b/src/main.conf index f47cab46d..bf8a86080 100644 --- a/src/main.conf +++ b/src/main.conf @@ -86,6 +86,10 @@ # profile is connected. Defaults to true. #RefreshDiscovery = true +# Enables experimental features and interfaces. +# Defaults to false. +#Experimental = false + [BR] # The following values are used to load default adapter parameters for BR/EDR. # BlueZ loads the values into the kernel before the adapter is powered if the -- 2.47.3