Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Mar 2015 16:37:01 +0100 (BST)
From:      Iain Hibbert <plunky@ogmig.net>
To:        "freebsd-bluetooth@freebsd.org" <freebsd-bluetooth@freebsd.org>
Subject:   Re: register HID with SDP error
Message-ID:  <alpine.NEB.2.11.1503301614370.9398@galant.ogmig.net>
In-Reply-To: <CAFuo_fxuTJqdvMg7jQ4rZy8qHLpNe2nRo%2B0JftGGBG2cjQ_QZg@mail.gmail.com>
References:  <CAFuo_fy9xRU2T3GUPY8116yZCUd8sL9pBQ9ixXnMwO56niJFog@mail.gmail.com> <CAFuo_fwPuaD4bYwfZou0RBswZsTmdtVZA1B2GqUdo3ZJJiWRQg@mail.gmail.com> <0AD7A2F7-37BE-4F6A-9FD6-F6C81B2CAF36@gmail.com> <CAFuo_fye5RWNtjsutHa%2BbXL0AYHYRpJxW-b=48o0iMwX227wdA@mail.gmail.com> <alpine.NEB.2.11.1503170658130.4414@galant.ogmig.net> <CAFuo_fx47uRC-eKD_KtsSsrMCQZauyHyCOgRxGbtp_WEZ49o_Q@mail.gmail.com> <alpine.NEB.2.11.1503171759510.4792@galant.ogmig.net> <CAFPOs6omaOOOumNk2Zg=YBgK9cy7JumOZ6k-89oTbVw-3PgAvg@mail.gmail.com> <CAFuo_fy%2BdmpcswwLMV3LaGGkN6VyQ%2B=ieEzYUT=omSLkhS8=EA@mail.gmail.com> <CAFuo_fwBcBQOZzFNntBSP0AwyAkGq=s-eeKJ1CCgjPp5tWdG=A@mail.gmail.com> <CAFPOs6rJJW2BC3rru%2Bvb5dAE0yaHGvr=0s8K9FZ1ee0rf-ML-w@mail.gmail.com> <CAFuo_fzRGc0_yrHYyqcfLrWX7q3AuLwA3v%2B9_QRTirU-Bx4xkw@mail.gmail.com> <CAFuo_fyYyoX6rNwN6_TfB01_xp5EQHFu-CJG=_dab_Qe7x1hkA@mail.gmail.com> <alpine.NEB.2.11.1503301517330.9258@galant.ogmig.net> <CAFuo_fxuTJqdvMg7jQ4rZy8qHLpNe2nRo%2B0JftGGBG2cjQ_QZg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 30 Mar 2015, Waitman Gobble wrote:

> ok, so in this loop (sar.c)
>
> int32_t server_prepare_attr_list(....)
> {
> for (; lo <= hi; lo ++) {
> len = server_prepare_attr_value_pair(provider, lo, ptr, rsp_end);
> }
> }
>
> it's going through all the specified aid's.  ie, "aid(s) 0x0000 -
> 0xffff" in the query request:
>
> SDP SSA Req: tid 0x0 len 0xf
>           pat uuid-16 0x0100 (L2CAP)
>           max 0xf0
>           aid(s) 0x0000 - 0xffff
>           cont 00
>
> lo = 0x0000
> hi = 0xffff
>
> So.. I only want to generate 'server_prepare_attr_value_pair()' based
> on the query parameters?

I think yes, but does that bit not work properly already?

(in your example, it asks for all possible Attribute IDs anyway)

I thought your problem was that the search for UUID was not working
correctly.. that failure is where it selects the records to respond to,
because it doesn't select any.

The reason for that, is that the FreeBSD sdpd doesn't actually store a
record, it relies on there being a single service class (this is a UUID)
stored in the profile->uuid field and only looks at that, which is wrong.

You will need to change the 'struct profile' to have a list of UUIDs, and
the ServiceSearchPattern will contain a list of (up to 12) UUIDs and all
must be contained in the profile for it to be a match.

regards,
iain



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.NEB.2.11.1503301614370.9398>