Hi Luiz On Sat, Jan 9, 2021 at 2:48 AM Luiz Augusto von Dentz <luiz.dentz@xxxxxxxxx> wrote: > > From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> > > Unfortunately assuming service changed has been subscribed may cause > indication to time out in some peripherals (Logitech M720 Triathlon, Mx > Anywhere 2, Lenovo Mice N700, RAPOO BleMouse and Microsoft Designer > Mouse) even though the expect actually mandates that the client responds > with confirmation these peripherals just ignores it completely which > leads them to be disconnected whenever bluetoothd is restarted or the > system reboots. > --- > src/device.c | 11 ++--------- > src/gatt-database.c | 2 +- > 2 files changed, 3 insertions(+), 10 deletions(-) > > diff --git a/src/device.c b/src/device.c > index fe885aa64..af13badfc 100644 > --- a/src/device.c > +++ b/src/device.c > @@ -5831,18 +5831,11 @@ void device_load_svc_chng_ccc(struct btd_device *device, uint16_t *ccc_le, > key_file = g_key_file_new(); > g_key_file_load_from_file(key_file, filename, 0, NULL); > > - /* > - * If there is no "ServiceChanged" section we may be loading data from > - * old version which did not persist Service Changed CCC values. Let's > - * check if we are bonded and assume indications were enabled by peer > - * in such case - it should have done this anyway. > - */ > if (!g_key_file_has_group(key_file, "ServiceChanged")) { > if (ccc_le) > - *ccc_le = device->le_state.bonded ? 0x0002 : 0x0000; > + *ccc_le = 0x0000; > if (ccc_bredr) > - *ccc_bredr = device->bredr_state.bonded ? > - 0x0002 : 0x0000; > + *ccc_bredr = 0x0000; > g_key_file_free(key_file); > return; > } > diff --git a/src/gatt-database.c b/src/gatt-database.c > index b7d2bea1d..d99604826 100644 > --- a/src/gatt-database.c > +++ b/src/gatt-database.c > @@ -333,7 +333,7 @@ static void att_disconnected(int err, void *user_data) > handle = gatt_db_attribute_get_handle(state->db->svc_chngd_ccc); > > ccc = find_ccc_state(state, handle); > - if (ccc) > + if (ccc && ccc->value) > device_store_svc_chng_ccc(device, state->bdaddr_type, > ccc->value); > > -- > 2.26.2 > Was this patch is merged? Regards Sathish N