[Bluez PATCH v4 4/5] main: add configurable RemoteNameRequestRetryDelay parameter
STALE1771d
REVIEWED: 1 (0M)
From: Archie Pusaka <hidden>
Date: 2021-11-25 07:08:54
Subsystem:
the rest · Maintainer:
Linus Torvalds
1 review trailer.
From: Archie Pusaka <redacted> 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 <redacted> --- Changes in v4: * New in this version. src/btd.h | 1 + src/device.c | 4 +--- src/main.c | 19 ++++++++++++++++--- src/main.conf | 5 +++++ 4 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/src/btd.h b/src/btd.h
index ff9f082f19..a805a40d7d 100644
--- a/src/btd.h
+++ b/src/btd.h@@ -104,6 +104,7 @@ struct btd_opts { uint32_t tmpto; uint8_t privacy; bool device_privacy; + uint32_t name_request_retry_delay; struct btd_defaults defaults;
diff --git a/src/device.c b/src/device.c
index 44450b1132..0e2612825b 100644
--- a/src/device.c
+++ b/src/device.c@@ -79,8 +79,6 @@ #define GATT_INCLUDE_UUID_STR "2802" #define GATT_CHARAC_UUID_STR "2803" -#define NAME_RESOLVE_RETRY_DELAY 300 /* seconds */ - static DBusConnection *dbus_conn = NULL; static unsigned service_state_cb_id;
@@ -4489,7 +4487,7 @@ bool device_is_name_resolve_allowed(struct btd_device *device) */ return now.tv_sec < device->name_resolve_failed_time || now.tv_sec >= device->name_resolve_failed_time + - NAME_RESOLVE_RETRY_DELAY; + btd_opts.name_request_retry_delay; } void device_name_resolve_fail(struct btd_device *device)
diff --git a/src/main.c b/src/main.c
index 3adcdc1087..8cc2dfca61 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;
diff --git a/src/main.conf b/src/main.conf
index 0c41d77420..49b9e67550 100644
--- a/src/main.conf
+++ b/src/main.conf@@ -119,6 +119,11 @@ # Defaults to false. #Experimental = false +# The duration to avoid retrying to resolve a peer's name, if the previous +# try failed. +# The value is in seconds. Default is 300, i.e. 5 minutes. +#RemoteNameRequestRetryDelay = 300 + [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.34.0.rc2.393.gf8c9666880-goog