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

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

 



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>

> ---
>  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