From e2746b6fcc76c0a90ebffcfa6e61cf89aa538ab6 Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Tue, 4 Oct 2011 15:32:22 -0300 Subject: [PATCH] Add automatic connect timeout config option Add new option in main.conf allowing change the default automatic connection timer. This value defines how many seconds re-connection for bonded devices will be active when a platform/user event triggers the automatic re-connections. --- src/adapter.c | 3 +-- src/hcid.h | 1 + src/main.c | 12 ++++++++++++ src/main.conf | 6 ++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index 8ff4e3d7b..28063ad76 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -78,7 +78,6 @@ #define check_address(address) bachk(address) #define OFF_TIMER 3 -#define AUTO_TIMER 60 static DBusConnection *connection = NULL; static GSList *adapter_drivers = NULL; @@ -3454,7 +3453,7 @@ void btd_adapter_enable_auto_connect(struct btd_adapter *adapter) g_slist_foreach(adapter->devices, set_auto_connect, NULL); - adapter->auto_timeout_id = g_timeout_add_seconds(AUTO_TIMER, + adapter->auto_timeout_id = g_timeout_add_seconds(main_opts.autoto, disable_auto, adapter); } diff --git a/src/hcid.h b/src/hcid.h index ef25c79ef..e993a160c 100644 --- a/src/hcid.h +++ b/src/hcid.h @@ -29,6 +29,7 @@ struct main_opts { char *name; uint32_t class; uint16_t pageto; + uint16_t autoto; uint32_t discovto; uint32_t pairto; uint16_t link_mode; diff --git a/src/main.c b/src/main.c index 06becfed6..5a953c391 100644 --- a/src/main.c +++ b/src/main.c @@ -63,6 +63,7 @@ #define LAST_ADAPTER_EXIT_TIMEOUT 30 #define DEFAULT_DISCOVERABLE_TIMEOUT 180 /* 3 minutes */ +#define DEFAULT_AUTO_CONNECT_TIMEOUT 60 /* 60 seconds */ struct main_opts main_opts; @@ -128,6 +129,16 @@ static void parse_config(GKeyFile *config) main_opts.flags |= 1 << HCID_SET_PAGETO; } + val = g_key_file_get_integer(config, "General", "AutoConnectTimeout", + &err); + if (err) { + DBG("%s", err->message); + g_clear_error(&err); + } else { + DBG("auto_to=%d", val); + main_opts.autoto = val; + } + str = g_key_file_get_string(config, "General", "Name", &err); if (err) { DBG("%s", err->message); @@ -230,6 +241,7 @@ static void init_defaults(void) main_opts.mode = MODE_CONNECTABLE; main_opts.name = g_strdup("BlueZ"); main_opts.discovto = DEFAULT_DISCOVERABLE_TIMEOUT; + main_opts.autoto = DEFAULT_AUTO_CONNECT_TIMEOUT; main_opts.remember_powered = TRUE; main_opts.reverse_sdp = TRUE; main_opts.name_resolv = TRUE; diff --git a/src/main.conf b/src/main.conf index a9e206073..321f62219 100644 --- a/src/main.conf +++ b/src/main.conf @@ -30,6 +30,12 @@ PageTimeout = 8192 # The value is in seconds. Defaults is 30. DiscoverSchedulerInterval = 30 +# Automatic connection for bonded devices driven by platform/user events. +# If a platform plugin uses this mechanism, automatic connections will be +# enabled during the interval defined below. Initially, this feature +# intends to be used to establish connections to ATT channels. +AutoConnectTimeout = 60 + # What value should be assumed for the adapter Powered property when # SetProperty(Powered, ...) hasn't been called yet. Defaults to true InitiallyPowered = true -- 2.11.0