From 73b301372b21d56a6c8902659fbfd1c352ad55de Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Wed, 24 Aug 2022 14:23:25 -0700 Subject: [PATCH] device: Fix not setting initiator This fixes not setting initiator flag properly when MGMT connect event has not been processed yet but ATT is already connected or is in progress. --- src/device.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/device.c b/src/device.c index 698c668b5..44b903335 100644 --- a/src/device.c +++ b/src/device.c @@ -301,7 +301,7 @@ static bool get_initiator(struct btd_device *dev) if (dev->bredr_state.connected) return dev->bredr_state.initiator; - return false; + return dev->att_io ? true : false; } static GSList *find_service_with_profile(GSList *list, struct btd_profile *p) @@ -5368,6 +5368,9 @@ static void att_connect_cb(GIOChannel *io, GError *gerr, gpointer user_data) goto done; } + /* Update connected state */ + device->le_state.connected = true; + if (!device_attach_att(device, io)) goto done; -- 2.47.3