Re: [PATCH] Set connection state to BT_DISCONN to avoid multiple responses

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

 



2011/1/31 Ville Tervo <ville.tervo@xxxxxxxxx>:
> Hi,
>
> On Sat, Jan 29, 2011 at 09:39:37PM +0800, ext Liang Bao wrote:
>> From: Bao Liang <tim.bao@xxxxxxxxx>
>>
>> This patch fixes a minor issue that two connection responses will be sent
>> for one L2CAP connection request. If the L2CAP connection request is first
>> blocked due to security reason and responded with reason "security block",
>> the state of the connection remains BT_CONNECT2. If a pairing procedure
>> completes successfully before the ACL connection is down, local host will
>> send another connection complete response. See the following packets
>> captured by hcidump.
>>
>> 2010-12-07 22:21:24.928096 < ACL data: handle 12 flags 0x00 dlen 16
>>     0000: 0c 00 01 00 03 19 08 00  41 00 53 00 03 00 00 00  ........A.S.....
>> ... ...
>>
>> 2010-12-07 22:21:35.791747 > HCI Event: Auth Complete (0x06) plen 3
>>     status 0x00 handle 12
>> ... ...
>>
>> 2010-12-07 22:21:35.872372 > ACL data: handle 12 flags 0x02 dlen 16
>>     L2CAP(s): Connect rsp: dcid 0x0054 scid 0x0040 result 0 status 0
>>       Connection successful
>>
>> Signed-off-by: Liang Bao <tim.bao@xxxxxxxxx>
>
> Now it looks good to me.
>
> Acked-by: Ville Tervo <ville.tervo@xxxxxxxxx>
>
Thanks, so ready for push? ;)
>> ---
>>  net/bluetooth/l2cap.c |    1 +
>>  1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
>> index fadf26b..364197d 100644
>> --- a/net/bluetooth/l2cap.c
>> +++ b/net/bluetooth/l2cap.c
>> @@ -848,6 +848,7 @@ static void __l2cap_sock_close(struct sock *sk, int reason)
>>                               result = L2CAP_CR_SEC_BLOCK;
>>                       else
>>                               result = L2CAP_CR_BAD_PSM;
>> +                     sk->sk_state = BT_DISCONN;
>>
>>                       rsp.scid   = cpu_to_le16(l2cap_pi(sk)->dcid);
>>                       rsp.dcid   = cpu_to_le16(l2cap_pi(sk)->scid);
>> --
>> 1.7.1
>>
>
> --
> Ville
>
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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