Re: [PATCH BlueZ] profile: Add exception from being claimed internally

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

 



Hi Luiz,

On Wed, Jul 15, 2020 at 3:40 PM Luiz Augusto von Dentz
<luiz.dentz@xxxxxxxxx> wrote:
>
> Hi Sonny,
>
> On Wed, Jul 15, 2020 at 3:32 PM Sonny Sasaka <sonnysasaka@xxxxxxxxxxxx> wrote:
> >
> > This adds a flag to give exception to profiles that are considered safe
> > to be both handled internally and externally via GATT API. Currently
> > this includes the battery profile.
> >
> > ---
> >  profiles/battery/battery.c | 1 +
> >  src/device.c               | 2 +-
> >  src/profile.h              | 5 +++++
> >  3 files changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/profiles/battery/battery.c b/profiles/battery/battery.c
> > index 4da4355a1..20aa47727 100644
> > --- a/profiles/battery/battery.c
> > +++ b/profiles/battery/battery.c
> > @@ -354,6 +354,7 @@ static struct btd_profile batt_profile = {
> >         .device_remove  = batt_remove,
> >         .accept         = batt_accept,
> >         .disconnect     = batt_disconnect,
> > +       .claim_service_exception = true,
> >  };
> >
> >  static int batt_init(void)
> > diff --git a/src/device.c b/src/device.c
> > index 0deee2707..cfa52461f 100644
> > --- a/src/device.c
> > +++ b/src/device.c
> > @@ -3818,7 +3818,7 @@ done:
> >         profile = btd_service_get_profile(service);
> >
> >         /* Claim attributes of internal profiles */
> > -       if (!profile->external) {
> > +       if (!profile->external && !profile->claim_service_exception) {
>
> The external field was added exactly to allow it to be used externally.
Oh, I was misled by the field name, I thought it's to mark profiles
which are not handled internally. I have sent another patch also
clarifying the field with a comment.
>
> >                 /* Mark the service as claimed by the existing profile. */
> >                 gatt_db_service_set_claimed(attr, true);
> >         }
> > diff --git a/src/profile.h b/src/profile.h
> > index 4448a2a6d..25e83381b 100644
> > --- a/src/profile.h
> > +++ b/src/profile.h
> > @@ -36,6 +36,11 @@ struct btd_profile {
> >
> >         bool auto_connect;
> >         bool external;
> > +       /* Some profiles are considered safe to be handled internally and also
> > +        * be exposed in the GATT API. This flag give such profiles exception
> > +        * from being claimed internally.
> > +        */
> > +       bool claim_service_exception;
> >
> >         int (*device_probe) (struct btd_service *service);
> >         void (*device_remove) (struct btd_service *service);
> > --
> > 2.26.2
> >
>
>
> --
> 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