Re: [Bluez-devel] Re: Disconnections are not being detected.

Marcel Holtmann
2004-08-27T11:33:20Z

Hi Vlad,

> But the official L2CAP specification. (Version 1.1) says (page 288):
>
> Result: 2 octets The result field indicates the outcome of
> the connection request. The result value of 0x0000 indicates
> success while a non-zero value indicates the connection request
> failed or is pending. A logical channel is established on the
> receipt of a successful result. Table 5.5 defines values for
> this field. If the result field is not zero. The DCID and SCID
> fields should be ignored when the result field indicates the
> connection was refused.
>
> So although the BlueZ behavior is correct from common sense perspective,
> but it is not correct from the specification perspective. I am not sure
> what does version 1.2 of the spec say about this subject.

it is still the same for the 1.2 specification, but it is simply wrong
and stupid. You need at least the SCID to match the connect response to
a previous connect request. Otherwise this response is meaningless.

What we did wrong is sending the command reject for a response. I will
fix this, but this won't fix your problem. If we don't know for what
L2CAP channel we get a connection refused response, we can't do anything
else then waiting for a timeout event.

Check the bluetooth.org pages if they had an erratum for that and if not
ping them to correct it. Also write to SE about that.