From 3fe2e7aa35a00fb67e642e76f9e0c0262b18fc3c Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Tue, 4 Oct 2011 15:32:04 -0300 Subject: [PATCH] Add an interval between connection attempts For connection attempts to the same remote device, add 5 seconds interval until the next connect attempt. At the moment, the behaviour depends on if address is found in the advertising kernel cache only. Passive scanning kernel patches are not upstream yet. LE scanning will be executed in background during a short period of time until it finds the address or EHOSTDOWN is returned to the connection attempt. --- src/device.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/device.c b/src/device.c index 4317a33f7..0b45880eb 100644 --- a/src/device.c +++ b/src/device.c @@ -66,6 +66,8 @@ #define DISCONNECT_TIMER 2 #define DISCOVERY_TIMER 2 +#define AUTO_CONNECTION_INTERVAL 5 /* Next connection attempt */ + /* When all services should trust a remote device */ #define GLOBAL_TRUST "[all]" @@ -1791,8 +1793,9 @@ static void att_connect_cb(GIOChannel *io, GError *gerr, gpointer user_data) device->browse = NULL; browse_request_free(req, TRUE); } else if (device->auto_connect) - device->auto_id = g_idle_add_full( + device->auto_id = g_timeout_add_seconds_full( G_PRIORITY_DEFAULT_IDLE, + AUTO_CONNECTION_INTERVAL, att_connect, device, att_connect_dispatched); -- 2.47.3