sdpcontrol issues (LONG)

Maksim Yevmenkin maksim.yevmenkin at savvis.net
Tue Dec 7 12:39:48 PST 2004


Tuc at Beach House wrote:
>>>	I had to configure pppd and rfcomm_pppd and a few other things, and
>>>its been running all day.
>>
>>ah, ok. so, you are saying treo *can* connect to your laptop via 
>>bluetooth and you can browse on treo? or you can connect windows box to 
>>your laptop via bluetooth and can browse on windows?
> 
> 	Treo is using DUN on FreeBSD for its connectivity. FreeBSD
> can see all services Windows offers. Windows can see DUN on FreeBSD.
> Otherwise, the only thing I *CANT* do so far is find any services on the
> Treo.

ok. i think i have an idea why it does not work. a colleague of mine has 
audiovox smartphone (running windows-something) but it gives similar 
error on sdp requests.

apparently sdp server chokes when attribute range has exactly one 
attribute, i.e. range specified as 0x0004 - 0x0004, meaning return only 
attribute id 0x0004.

could you please try the following:

1) edit /usr/src/usr.sbin/bluetooth/sdpcontrol/search.c file and replace 
the following lines

39: /* List of the attributes we are looking for */
40: static u_int32_t       attrs[] =
41: {
42:        SDP_ATTR_RANGE( SDP_ATTR_SERVICE_RECORD_HANDLE,
43:                        SDP_ATTR_SERVICE_RECORD_HANDLE),
44:        SDP_ATTR_RANGE( SDP_ATTR_SERVICE_CLASS_ID_LIST,
45:                        SDP_ATTR_SERVICE_CLASS_ID_LIST),
46:        SDP_ATTR_RANGE( SDP_ATTR_PROTOCOL_DESCRIPTOR_LIST,
47:                        SDP_ATTR_PROTOCOL_DESCRIPTOR_LIST),
48:        SDP_ATTR_RANGE( SDP_ATTR_BLUETOOTH_PROFILE_DESCRIPTOR_LIST,
49:                        SDP_ATTR_BLUETOOTH_PROFILE_DESCRIPTOR_LIST)
50: };

with

/* List of the attributes we are looking for */
static uint32_t attrs[] =
{
         SDP_ATTR_RANGE( 0, 1 ),
         SDP_ATTR_RANGE( 3, 4 ),
         SDP_ATTR_RANGE( 8, 9 ),
/*
         SDP_ATTR_RANGE( SDP_ATTR_SERVICE_RECORD_HANDLE,
                         SDP_ATTR_SERVICE_RECORD_HANDLE),
         SDP_ATTR_RANGE( SDP_ATTR_SERVICE_CLASS_ID_LIST,
                         SDP_ATTR_SERVICE_CLASS_ID_LIST),
         SDP_ATTR_RANGE( SDP_ATTR_PROTOCOL_DESCRIPTOR_LIST,
                         SDP_ATTR_PROTOCOL_DESCRIPTOR_LIST),
         SDP_ATTR_RANGE( SDP_ATTR_BLUETOOTH_PROFILE_DESCRIPTOR_LIST,
                         SDP_ATTR_BLUETOOTH_PROFILE_DESCRIPTOR_LIST)

*/
};

2) re-compile sdpcontrol(8)

3) try to search for the services again.

thanks,
max


More information about the freebsd-bluetooth mailing list