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 files changed, 4 insertions(+), 1 deletions(-) diff --git a/src/device.c b/src/device.c index 4317a33..0b45880 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); -- 1.7.7 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html