summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorArchie Pusaka <apusaka@chromium.org>2021-11-25 15:06:26 +0800
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2021-11-29 09:43:42 -0800
commit68e1c426cbc4c4f96fc1a074ad88ca56d8a0a3b0 (patch)
tree7877f5fcd116f83332f9c59514d1b18db74b098c /src/main.c
parentee004ee7bd8f3d4e10ee4e3eadacbaca4b3b0936 (diff)
downloadbluez-68e1c426cbc4c4f96fc1a074ad88ca56d8a0a3b0.tar.gz
main: add configurable RemoteNameRequestRetryDelay parameter
This specifies how long will the userspace ignore a peer with an unknown name after a failed remote name resolving procedure. The peer device can still be connected, this only prevents the remote name resolving procedure retry. Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c
index 3adcdc108..8cc2dfca6 100644
--- a/src/main.c
+++ b/src/main.c
@@ -55,9 +55,10 @@
#define BLUEZ_NAME "org.bluez"
-#define DEFAULT_PAIRABLE_TIMEOUT 0 /* disabled */
-#define DEFAULT_DISCOVERABLE_TIMEOUT 180 /* 3 minutes */
-#define DEFAULT_TEMPORARY_TIMEOUT 30 /* 30 seconds */
+#define DEFAULT_PAIRABLE_TIMEOUT 0 /* disabled */
+#define DEFAULT_DISCOVERABLE_TIMEOUT 180 /* 3 minutes */
+#define DEFAULT_TEMPORARY_TIMEOUT 30 /* 30 seconds */
+#define DEFAULT_NAME_REQUEST_RETRY_DELAY 300 /* 5 minutes */
#define SHUTDOWN_GRACE_SECONDS 10
@@ -82,6 +83,7 @@ static const char *supported_options[] = {
"JustWorksRepairing",
"TemporaryTimeout",
"Experimental",
+ "RemoteNameRequestRetryDelay",
NULL
};
@@ -816,6 +818,16 @@ static void parse_config(GKeyFile *config)
g_strfreev(strlist);
}
+ val = g_key_file_get_integer(config, "General",
+ "RemoteNameRequestRetryDelay", &err);
+ if (err) {
+ DBG("%s", err->message);
+ g_clear_error(&err);
+ } else {
+ DBG("RemoteNameRequestRetryDelay=%d", val);
+ btd_opts.name_request_retry_delay = val;
+ }
+
str = g_key_file_get_string(config, "GATT", "Cache", &err);
if (err) {
DBG("%s", err->message);
@@ -927,6 +939,7 @@ static void init_defaults(void)
btd_opts.name_resolv = TRUE;
btd_opts.debug_keys = FALSE;
btd_opts.refresh_discovery = TRUE;
+ btd_opts.name_request_retry_delay = DEFAULT_NAME_REQUEST_RETRY_DELAY;
btd_opts.defaults.num_entries = 0;
btd_opts.defaults.br.page_scan_type = 0xFFFF;