@@ -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;
@@ -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)
@@ -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;
@@ -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