From a34e9b482390c389bc35f85895564c55d5507763 Mon Sep 17 00:00:00 2001 From: Stanley Tng Date: Fri, 5 Jan 2018 09:25:11 -0800 Subject: [PATCH] Remove L2CAP_MASK_LE_COC_CHANNEL flag in channel number Cleanup the code by removing the use of L2CAP_MASK_LE_COC_CHANNEL flag in the channel number. This flag will be passed in the proper "flags" parameter. Test: Ran the new ACTS Tests for LE CoC Bug: 70683224 Change-Id: I6ed77b46e5434bca5f2501d853ae8181c7197b4c --- btif/include/btif_sock_l2cap.h | 1 - btif/src/btif_sock.cc | 21 +++++++++++---------- btif/src/btif_sock_l2cap.cc | 4 ++-- include/hardware/bt_sock.h | 1 + 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/btif/include/btif_sock_l2cap.h b/btif/include/btif_sock_l2cap.h index 2715be0a7..f92127931 100644 --- a/btif/include/btif_sock_l2cap.h +++ b/btif/include/btif_sock_l2cap.h @@ -10,7 +10,6 @@ #include #define L2CAP_MASK_FIXED_CHANNEL 0x10000 -#define L2CAP_MASK_LE_COC_CHANNEL 0x20000 bt_status_t btsock_l2cap_init(int handle, uid_set_t* set); bt_status_t btsock_l2cap_cleanup(); diff --git a/btif/src/btif_sock.cc b/btif/src/btif_sock.cc index c5ba4a6c2..61ce0c9fb 100644 --- a/btif/src/btif_sock.cc +++ b/btif/src/btif_sock.cc @@ -143,17 +143,18 @@ static bt_status_t btsock_listen(btsock_type_t type, const char* service_name, break; case BTSOCK_L2CAP_LE: if (flags & BTSOCK_FLAG_NO_SDP) { - channel = L2CAP_MASK_LE_COC_CHANNEL; - } else if (channel > 0) { - channel |= L2CAP_MASK_LE_COC_CHANNEL; - } else { + /* Set channel to zero so that it will be assigned */ + channel = 0; + } else if (channel <= 0) { LOG_ERROR(LOG_TAG, "%s: type BTSOCK_L2CAP_LE: invalid channel=%d", __func__, channel); break; } - LOG_DEBUG(LOG_TAG, - "%s: type=BTSOCK_L2CAP_LE, channel=0x%x, original=0x%x", - __func__, channel, original_channel); + flags |= BTSOCK_FLAG_LE_COC; + LOG_DEBUG( + LOG_TAG, + "%s: type=BTSOCK_L2CAP_LE, channel=0x%x, original=0x%x, flags=0x%x", + __func__, channel, original_channel, flags); status = btsock_l2cap_listen(service_name, channel, sock_fd, flags, app_uid); break; @@ -190,9 +191,9 @@ static bt_status_t btsock_connect(const RawAddress* bd_addr, btsock_type_t type, break; case BTSOCK_L2CAP_LE: - channel |= L2CAP_MASK_LE_COC_CHANNEL; - LOG_DEBUG(LOG_TAG, "%s: type=BTSOCK_L2CAP_LE, channel=0x%x", __func__, - channel); + flags |= BTSOCK_FLAG_LE_COC; + LOG_DEBUG(LOG_TAG, "%s: type=BTSOCK_L2CAP_LE, channel=0x%x, flags=0x%x", + __func__, channel, flags); status = btsock_l2cap_connect(bd_addr, channel, sock_fd, flags, app_uid); break; diff --git a/btif/src/btif_sock_l2cap.cc b/btif/src/btif_sock_l2cap.cc index 1d147aa63..e93a07269 100644 --- a/btif/src/btif_sock_l2cap.cc +++ b/btif/src/btif_sock_l2cap.cc @@ -857,9 +857,9 @@ static bt_status_t btsock_l2cap_listen_or_connect(const char* name, // We need to auto assign a PSM fixed_chan = 0; } else { + is_le_coc = (flags & BTSOCK_FLAG_LE_COC) != 0; fixed_chan = (channel & L2CAP_MASK_FIXED_CHANNEL) != 0; - is_le_coc = (channel & L2CAP_MASK_LE_COC_CHANNEL) != 0; - channel &= ~(L2CAP_MASK_FIXED_CHANNEL | L2CAP_MASK_LE_COC_CHANNEL); + channel &= ~L2CAP_MASK_FIXED_CHANNEL; } if (!is_inited()) return BT_STATUS_NOT_READY; diff --git a/include/hardware/bt_sock.h b/include/hardware/bt_sock.h index f051147f7..c76ef0666 100644 --- a/include/hardware/bt_sock.h +++ b/include/hardware/bt_sock.h @@ -23,6 +23,7 @@ __BEGIN_DECLS #define BTSOCK_FLAG_NO_SDP (1 << 2) #define BTSOCK_FLAG_AUTH_MITM (1 << 3) #define BTSOCK_FLAG_AUTH_16_DIGIT (1 << 4) +#define BTSOCK_FLAG_LE_COC (1 << 5) typedef enum { BTSOCK_RFCOMM = 1, -- 2.11.0