tech-userlevel archive

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

Bluetooth SDP update - sdp(3), sdpd(8) and sdpquery(1)


I have been working on an update to the Bluetooth Service Discovery API
for a while and I think its about ready to present.

The original "Service Discovery" implementation came from FreeBSD and I
ported it to NetBSD without much examination (the spec was not easy to
understand and it saved a huge bunch of time) but it suffers from several
problems in my opinion, the functions provided do too much cooking of the
data for no gain and don't allow any flexibility.

So, I have deprecated the sdp(3) functions and replaced them with
something that mirrors the specification more closely, allowing much more
flexibility, and added an API to deal with handling the raw data in a
fairly simple manner (sdp_data(3))

Along the way I've rewritten the service discovery daemon sdpd(8) to be a
lot simpler, and the sdpquery(1) program to do full queries and print out
the response in a meaningful manner.

Because the library is used to communicate with the daemon, I have
provided binary compatibility both at the library and server level, and
source compatibility is available by defining "-DSDP_COMPAT" for software
not using the new API so I think only a minor bumpity bump would be
required (software using the pre-time_t bump library will still work)

I'm fairly happy with the new API and have reworked all the clients in the
NetBSD tree that use the old methods during development. Since the patch
changes more than it leaves alone I have put the entire library, daemon
and query program in an archive for inspection

If no adverse comments I plan to import this to NetBSD at some point after
5.0 is released and I've updated to -current.

Additionally, following on from discussions on the freebsd-bluetooth list,
it seems that there is a conflict with an external "libsdp" (from
multimedia/mpeg4ip) along with associated <sdp.h> include file, I proposed
to merge the SDP functions into libbluetooth and move <bluetooth.h> and
<sdp.h> under /usr/include/bluetooth for all BSDs. Discussions are ongoing
but that might happen at the same time.


Home | Main Index | Thread Index | Old Index