From fa2ebfd5fbff7c21ae1d7540b19c3d7a4973587f Mon Sep 17 00:00:00 2001 From: Andreas Kemnade Date: Tue, 26 Aug 2025 13:43:47 +0200 Subject: [PATCH] device: fix auto connect with private addresses When an app is registered and a device gets paired, device_set_auto_connect() can be called before the address is resolved. Do not ignore the request but rather record the auto connect request so that it can be enabled in device_update_addr. --- src/device.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/device.c b/src/device.c index 0179c3dab..8b3e78995 100644 --- a/src/device.c +++ b/src/device.c @@ -2205,7 +2205,7 @@ static void device_set_auto_connect(struct btd_device *device, gboolean enable) char addr[18]; const char *bearer; - if (!device || !device->le || device_address_is_private(device)) + if (!device || !device->le) return; ba2str(&device->bdaddr, addr); @@ -2224,6 +2224,9 @@ static void device_set_auto_connect(struct btd_device *device, gboolean enable) return; } + if (device_address_is_private(device)) + return; + /* Inhibit auto connect if BR/EDR bearer is preferred */ bearer = device_prefer_bearer_str(device); if (bearer && !strcasecmp(bearer, "bredr")) -- 2.47.3