Re: [BlueZ PATCH v1] shared/gatt-client:Ignore orphaned characteristics

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marcel, Alain,

On Fri, May 1, 2020 at 11:04 AM Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote:
>
> Hi Alain,
>
> >>>>> The gatt discovery proceedure simplification to discover all
> >>>>> characteristics at once has exposed a device side issue where some
> >>>>> device implementation reports orphaned characteristics.  While this
> >>>>> technically shouldn't be allowed, some instances of this were observed
> >>>>> (namely on some Android phones).
> >>>>>
> >>>>> The fix is to simply skip over orphaned characteristics and continue
> >>>>> with everything else that is valid.
> >>>>>
> >>>>> This has been tested as part of the Android CTS tests against an
> >>>>> affected platform and was confirmed to have worked around the issue.
> >>>>> ---
> >>>>>
> >>>>> src/shared/gatt-client.c | 5 ++++-
> >>>>> 1 file changed, 4 insertions(+), 1 deletion(-)
> >>>>>
> >>>>> diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c
> >>>>> index 963ad619f..d604c77a3 100644
> >>>>> --- a/src/shared/gatt-client.c
> >>>>> +++ b/src/shared/gatt-client.c
> >>>>> @@ -632,7 +632,10 @@ static bool discover_descs(struct discovery_op *op, bool *discovering)
> >>>>>                     util_debug(client->debug_callback, client->debug_data,
> >>>>>                             "Failed to insert characteristic at 0x%04x",
> >>>>>                             chrc_data->value_handle);
> >>>>> -                     goto failed;
> >>>>> +
> >>>>> +                     /* Skip over invalid characteristic */
> >>>>> +                     free(chrc_data);
> >>>>> +                     continue;
> >>>>>             }
> >>>>
> >>>> should we add a warning here?
> >>> Is there a good way other than the util_debug mechanism to write  a warning?
> >>
> >> you could just use btd_warn() here. If this gets too noisy, we either remove it later or we introduce a btd_warn_ratelimited() or btd_warn_once().
> > This being under src/shared, I wasn't sure if that was acceptable to
> > add a btd dependency here, especially with the work to avoid it via
> > the util_debug.  Happy to do either way, just want to make sure the
> > guidance is clear.
>
> good point. My bad. You better leave the logging out then.

There is already some logging a little bit before so I guess we are
covered here.

-- 
Luiz Augusto von Dentz



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux