From c05b125733e762ada4ea9b10461572377a7b0a70 Mon Sep 17 00:00:00 2001 From: Hansong Zhang Date: Fri, 28 Aug 2020 15:41:45 -0700 Subject: [PATCH] Only RFCOMM Uses btm_sec_mx_access_request Bug: 159815595 Tag: #refactor Test: compile & verify basic functions working Change-Id: I992a5477f71e630531d29c720f51e8473a551eff --- stack/btm/btm_sec.cc | 38 +++++++++++++++++-------------------- stack/btm/btm_sec.h | 5 ++--- stack/rfcomm/rfc_port_fsm.cc | 9 ++++----- stack/test/common/mock_btm_layer.cc | 9 ++++----- 4 files changed, 27 insertions(+), 34 deletions(-) diff --git a/stack/btm/btm_sec.cc b/stack/btm/btm_sec.cc index 5a4ebb0a2..d9a3d09c0 100644 --- a/stack/btm/btm_sec.cc +++ b/stack/btm/btm_sec.cc @@ -1785,9 +1785,8 @@ tBTM_STATUS btm_sec_l2cap_access_req(const RawAddress& bd_addr, uint16_t psm, * Returns BTM_CMD_STARTED * ******************************************************************************/ -tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, uint16_t psm, - bool is_originator, uint32_t mx_proto_id, - uint32_t mx_chan_id, +tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, + bool is_originator, uint32_t mx_chan_id, tBTM_SEC_CALLBACK* p_callback, void* p_ref_data) { tBTM_SEC_DEV_REC* p_dev_rec; @@ -1798,8 +1797,8 @@ tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, uint16_t psm, L2CAP connection */ if (bluetooth::shim::is_gd_shim_enabled()) { return bluetooth::shim::btm_sec_mx_access_request( - bd_addr, psm, is_originator, mx_proto_id, mx_chan_id, p_callback, - p_ref_data); + bd_addr, BT_PSM_RFCOMM, is_originator, BTM_SEC_PROTO_RFCOMM, mx_chan_id, + p_callback, p_ref_data); } BTM_TRACE_DEBUG("%s() is_originator: %d", __func__, is_originator); @@ -1807,8 +1806,8 @@ tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, uint16_t psm, p_dev_rec = btm_find_or_alloc_dev(bd_addr); /* Find the service record for the PSM */ - p_serv_rec = - btm_sec_find_mx_serv(is_originator, psm, mx_proto_id, mx_chan_id); + p_serv_rec = btm_sec_find_mx_serv(is_originator, BT_PSM_RFCOMM, + BTM_SEC_PROTO_RFCOMM, mx_chan_id); /* If there is no application registered with this PSM do not allow connection */ @@ -1816,9 +1815,8 @@ tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, uint16_t psm, if (p_callback) (*p_callback)(&bd_addr, transport, p_ref_data, BTM_MODE_UNSUPPORTED); - BTM_TRACE_ERROR( - "Security Manager: MX service not found PSM:%d Proto:%d SCN:%d", psm, - mx_proto_id, mx_chan_id); + BTM_TRACE_ERROR("Security Manager: MX service not found SCN:%d", + mx_chan_id); return BTM_NO_RESOURCES; } @@ -1829,9 +1827,8 @@ tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, uint16_t psm, /* we will process one after another */ if ((p_dev_rec->p_callback) || (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)) { - BTM_TRACE_EVENT("%s() service PSM:%d Proto:%d SCN:%d delayed state: %s", - __func__, psm, mx_proto_id, mx_chan_id, - btm_pair_state_descr(btm_cb.pairing_state)); + BTM_TRACE_EVENT("%s() service SCN:%d delayed state: %s", __func__, + mx_chan_id, btm_pair_state_descr(btm_cb.pairing_state)); rc = BTM_CMD_STARTED; @@ -1883,8 +1880,9 @@ tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, uint16_t psm, } if (rc == BTM_CMD_STARTED) { BTM_TRACE_EVENT("%s: call btm_sec_queue_mx_request", __func__); - btm_sec_queue_mx_request(bd_addr, psm, is_originator, mx_proto_id, - mx_chan_id, p_callback, p_ref_data); + btm_sec_queue_mx_request(bd_addr, BT_PSM_RFCOMM, is_originator, + BTM_SEC_PROTO_RFCOMM, mx_chan_id, p_callback, + p_ref_data); } else /* rc == BTM_SUCCESS */ { /* access granted */ @@ -1950,11 +1948,10 @@ tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, uint16_t psm, p_dev_rec->p_ref_data = p_ref_data; BTM_TRACE_EVENT( - "%s() proto_id:%d chan_id:%d State:%d Flags:0x%x Required:0x%x Service " + "%s() chan_id:%d State:%d Flags:0x%x Required:0x%x Service " "ID:%d", - __func__, mx_proto_id, mx_chan_id, p_dev_rec->sec_state, - p_dev_rec->sec_flags, p_dev_rec->security_required, - p_dev_rec->p_cur_service->service_id); + __func__, mx_chan_id, p_dev_rec->sec_state, p_dev_rec->sec_flags, + p_dev_rec->security_required, p_dev_rec->p_cur_service->service_id); rc = btm_sec_execute_procedure(p_dev_rec); if (rc != BTM_CMD_STARTED) { @@ -2137,8 +2134,7 @@ void btm_sec_check_pending_reqs(void) { "%s PSM:0x%04x Is_Orig:%u mx_proto_id:%u mx_chan_id:%u", __func__, p_e->psm, p_e->is_orig, p_e->mx_proto_id, p_e->mx_chan_id); - btm_sec_mx_access_request(p_e->bd_addr, p_e->psm, p_e->is_orig, - p_e->mx_proto_id, p_e->mx_chan_id, + btm_sec_mx_access_request(p_e->bd_addr, p_e->is_orig, p_e->mx_chan_id, p_e->p_callback, p_e->p_ref_data); } else { BTM_SetEncryption(p_e->bd_addr, p_e->transport, p_e->p_callback, diff --git a/stack/btm/btm_sec.h b/stack/btm/btm_sec.h index eefb8757b..31c4a7ed5 100644 --- a/stack/btm/btm_sec.h +++ b/stack/btm/btm_sec.h @@ -424,9 +424,8 @@ tBTM_STATUS btm_sec_l2cap_access_req(const RawAddress& bd_addr, uint16_t psm, * Returns BTM_CMD_STARTED * ******************************************************************************/ -tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, uint16_t psm, - bool is_originator, uint32_t mx_proto_id, - uint32_t mx_chan_id, +tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, + bool is_originator, uint32_t mx_chan_id, tBTM_SEC_CALLBACK* p_callback, void* p_ref_data); diff --git a/stack/rfcomm/rfc_port_fsm.cc b/stack/rfcomm/rfc_port_fsm.cc index 3443def8f..d60705d7a 100644 --- a/stack/rfcomm/rfc_port_fsm.cc +++ b/stack/rfcomm/rfc_port_fsm.cc @@ -120,9 +120,9 @@ void rfc_port_sm_state_closed(tPORT* p_port, uint16_t event, void* p_data) { switch (event) { case RFC_EVENT_OPEN: p_port->rfc.state = RFC_STATE_ORIG_WAIT_SEC_CHECK; - btm_sec_mx_access_request( - p_port->rfc.p_mcb->bd_addr, BT_PSM_RFCOMM, true, BTM_SEC_PROTO_RFCOMM, - (uint32_t)(p_port->dlci / 2), &rfc_sec_check_complete, p_port); + btm_sec_mx_access_request(p_port->rfc.p_mcb->bd_addr, true, + (uint32_t)(p_port->dlci / 2), + &rfc_sec_check_complete, p_port); return; case RFC_EVENT_CLOSE: @@ -142,8 +142,7 @@ void rfc_port_sm_state_closed(tPORT* p_port, uint16_t event, void* p_data) { /* Open will be continued after security checks are passed */ p_port->rfc.state = RFC_STATE_TERM_WAIT_SEC_CHECK; - btm_sec_mx_access_request(p_port->rfc.p_mcb->bd_addr, BT_PSM_RFCOMM, - false, BTM_SEC_PROTO_RFCOMM, + btm_sec_mx_access_request(p_port->rfc.p_mcb->bd_addr, false, (uint32_t)(p_port->dlci / 2), &rfc_sec_check_complete, p_port); return; diff --git a/stack/test/common/mock_btm_layer.cc b/stack/test/common/mock_btm_layer.cc index 4c45d9477..6779e183f 100644 --- a/stack/test/common/mock_btm_layer.cc +++ b/stack/test/common/mock_btm_layer.cc @@ -30,14 +30,13 @@ void btm_sec_abort_access_req(const RawAddress& bd_addr) { btm_security_internal_interface->AbortAccessRequest(bd_addr); } -tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, uint16_t psm, - bool is_originator, uint32_t mx_proto_id, - uint32_t mx_chan_id, +tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, + bool is_originator, uint32_t mx_chan_id, tBTM_SEC_CALLBACK* p_callback, void* p_ref_data) { return btm_security_internal_interface->MultiplexingProtocolAccessRequest( - bd_addr, psm, is_originator, mx_proto_id, mx_chan_id, p_callback, - p_ref_data); + bd_addr, BT_PSM_RFCOMM, is_originator, BTM_SEC_PROTO_RFCOMM, mx_chan_id, + p_callback, p_ref_data); } bool BTM_SetSecurityLevel(bool is_originator, const char* p_name, -- 2.11.0