Re: [PATCH v5] obex: Fix PBAP GET request in PTS testing

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

 



Hi Amisha,

On Mon, Nov 4, 2024 at 4:26 AM Amisha Jain <quic_amisjain@xxxxxxxxxxx> wrote:
>
> This change is required for passing below PTS testcases:
> 1. PBAP/PSE/PBD/BV-02-C
> 2. PBAP/PSE/PBD/BV-03-C
> 3. PBAP/PSE/PBD/BI-01-C
> 4. PBAP/PSE/PBD/BV-13-C
> 5. PBAP/PSE/PBD/BV-14-C
> 6. PBAP/PSE/PBD/BV-17-C
>
> PTS sends all the GET phonebook requests without extra params.
> Therefore, the PBAP server is rejecting the requests with a
> 'Bad Request' response.
> So append few default params in GET request to avoid
> testcase failure.
> These params are already added for Vcardlisting and Vcardentry
> operations.

Didn't I give feedback to have this fix move up to parse_aparam:

https://gist.github.com/Vudentz/4fd0ec9cff098a0470869bc99264d7c0

We don't need to keep doing this fabrication of the tags, which is
rather hackish, if we do something like the above.

> ---
>  obexd/plugins/pbap.c | 24 +++++++++++++++++++++++-
>  1 file changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/obexd/plugins/pbap.c b/obexd/plugins/pbap.c
> index 4175f9de8..fb5b6b696 100644
> --- a/obexd/plugins/pbap.c
> +++ b/obexd/plugins/pbap.c
> @@ -511,7 +511,23 @@ static int pbap_get(struct obex_session *os, void *user_data)
>                 rsize = 0;
>         }
>
> -       /* Workaround for PTS client not sending mandatory apparams */
> +       /*
> +        * Workaround for PTS client not sending mandatory apparams
> +        *
> +        * Add MaxListCount attribute, description as per PBAP spec
> +        *
> +        * 5.1.4.3 MaxListCount :
> +        * This header is used to indicate the maximum number of
> +        * entries of the <x-bt/phonebook> object that the PCE
> +        * can handle. The value 65535 means that the number of
> +        * entries is not restricted. The maximum number of entries
> +        * shall be 65,535 if this header is not specified.
> +        *
> +        * 0x04 - Tag id
> +        * 0x02 - length
> +        * next 2 bytes are value - 0xffff
> +        */
> +
>         if (!rsize && g_ascii_strcasecmp(type, VCARDLISTING_TYPE) == 0) {
>                 static const uint8_t default_apparams[] = {
>                         0x04, 0x02, 0xff, 0xff
> @@ -524,6 +540,12 @@ static int pbap_get(struct obex_session *os, void *user_data)
>                 };
>                 buffer = default_apparams;
>                 rsize = sizeof(default_apparams);
> +       } else if (!rsize && g_ascii_strcasecmp(type, PHONEBOOK_TYPE) == 0) {
> +               static const uint8_t default_apparams[] = {
> +                       0x04, 0x02, 0xff, 0xff
> +               };
> +               buffer = default_apparams;
> +               rsize = sizeof(default_apparams);
>         }
>
>         params = parse_aparam(buffer, rsize);
> --
> 2.34.1
>
>


-- 
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