Skip to content

Commit 0a83733

Browse files
committed
Merge branch 'bugfix/btdm_spp_handle_error' into 'master'
component/bt: Fix bug of SPP handle error See merge request idf/esp-idf!2026
2 parents ca3e4ef + d082316 commit 0a83733

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

components/bt/bluedroid/bta/jv/bta_jv_act.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1560,13 +1560,13 @@ static void bta_jv_port_mgmt_cl_cback(UINT32 code, UINT16 port_handle)
15601560
PORT_CheckConnection(port_handle, rem_bda, &lcid);
15611561

15621562
if (code == PORT_SUCCESS) {
1563-
evt_data.rfc_open.handle = p_cb->handle;
1563+
evt_data.rfc_open.handle = p_pcb->handle;
15641564
evt_data.rfc_open.status = BTA_JV_SUCCESS;
15651565
bdcpy(evt_data.rfc_open.rem_bda, rem_bda);
15661566
p_pcb->state = BTA_JV_ST_CL_OPEN;
15671567
p_cb->p_cback(BTA_JV_RFCOMM_OPEN_EVT, &evt_data, p_pcb->user_data);
15681568
} else {
1569-
evt_data.rfc_close.handle = p_cb->handle;
1569+
evt_data.rfc_close.handle = p_pcb->handle;
15701570
evt_data.rfc_close.status = BTA_JV_FAILURE;
15711571
evt_data.rfc_close.port_status = code;
15721572
evt_data.rfc_close.async = TRUE;
@@ -1605,14 +1605,14 @@ static void bta_jv_port_event_cl_cback(UINT32 code, UINT16 port_handle)
16051605
APPL_TRACE_DEBUG( "bta_jv_port_event_cl_cback code=x%x port_handle:%d handle:%d",
16061606
code, port_handle, p_cb->handle);
16071607
if (code & PORT_EV_RXCHAR) {
1608-
evt_data.data_ind.handle = p_cb->handle;
1608+
evt_data.data_ind.handle = p_pcb->handle;
16091609
p_cb->p_cback(BTA_JV_RFCOMM_DATA_IND_EVT, &evt_data, p_pcb->user_data);
16101610
}
16111611

16121612
if (code & PORT_EV_FC) {
16131613
p_pcb->cong = (code & PORT_EV_FCS) ? FALSE : TRUE;
16141614
evt_data.rfc_cong.cong = p_pcb->cong;
1615-
evt_data.rfc_cong.handle = p_cb->handle;
1615+
evt_data.rfc_cong.handle = p_pcb->handle;
16161616
evt_data.rfc_cong.status = BTA_JV_SUCCESS;
16171617
p_cb->p_cback(BTA_JV_RFCOMM_CONG_EVT, &evt_data, p_pcb->user_data);
16181618
}
@@ -1684,7 +1684,7 @@ void bta_jv_rfcomm_connect(tBTA_JV_MSG *p_data)
16841684
FALSE-POSITIVE: port_state is initialized at PORT_GetState() */
16851685
PORT_SetState(handle, &port_state);
16861686

1687-
evt_data.handle = p_cb->handle;
1687+
evt_data.handle = p_pcb->handle;
16881688
} else {
16891689
evt_data.status = BTA_JV_FAILURE;
16901690
APPL_TRACE_ERROR("run out of rfc control block");
@@ -1823,7 +1823,7 @@ static void bta_jv_port_mgmt_sr_cback(UINT32 code, UINT16 port_handle)
18231823
}
18241824
}
18251825
if (failed) {
1826-
evt_data.rfc_close.handle = p_cb->handle;
1826+
evt_data.rfc_close.handle = p_pcb->handle;
18271827
evt_data.rfc_close.status = BTA_JV_FAILURE;
18281828
evt_data.rfc_close.async = TRUE;
18291829
evt_data.rfc_close.port_status = code;
@@ -1869,14 +1869,14 @@ static void bta_jv_port_event_sr_cback(UINT32 code, UINT16 port_handle)
18691869

18701870
void *user_data = p_pcb->user_data;
18711871
if (code & PORT_EV_RXCHAR) {
1872-
evt_data.data_ind.handle = p_cb->handle;
1872+
evt_data.data_ind.handle = p_pcb->handle;
18731873
p_cb->p_cback(BTA_JV_RFCOMM_DATA_IND_EVT, &evt_data, user_data);
18741874
}
18751875

18761876
if (code & PORT_EV_FC) {
18771877
p_pcb->cong = (code & PORT_EV_FCS) ? FALSE : TRUE;
18781878
evt_data.rfc_cong.cong = p_pcb->cong;
1879-
evt_data.rfc_cong.handle = p_cb->handle;
1879+
evt_data.rfc_cong.handle = p_pcb->handle;
18801880
evt_data.rfc_cong.status = BTA_JV_SUCCESS;
18811881
p_cb->p_cback(BTA_JV_RFCOMM_CONG_EVT, &evt_data, user_data);
18821882
}
@@ -2017,7 +2017,7 @@ void bta_jv_rfcomm_start_server(tBTA_JV_MSG *p_data)
20172017
p_pcb->state = BTA_JV_ST_SR_LISTEN;
20182018
p_pcb->user_data = rs->user_data;
20192019
evt_data.status = BTA_JV_SUCCESS;
2020-
evt_data.handle = p_cb->handle;
2020+
evt_data.handle = p_pcb->handle;
20212021
evt_data.sec_id = sec_id;
20222022
evt_data.use_co = TRUE;
20232023

@@ -2092,7 +2092,7 @@ void bta_jv_rfcomm_read(tBTA_JV_MSG *p_data)
20922092
tBTA_JV_RFCOMM_READ evt_data;
20932093

20942094
evt_data.status = BTA_JV_FAILURE;
2095-
evt_data.handle = p_cb->handle;
2095+
evt_data.handle = p_pcb->handle;
20962096
evt_data.req_id = rc->req_id;
20972097
evt_data.p_data = rc->p_data;
20982098
if (PORT_ReadData(rc->p_pcb->port_handle, (char *)rc->p_data, rc->len, &evt_data.len) ==
@@ -2120,7 +2120,7 @@ void bta_jv_rfcomm_write(tBTA_JV_MSG *p_data)
21202120
tBTA_JV_RFCOMM_WRITE evt_data;
21212121

21222122
evt_data.status = BTA_JV_FAILURE;
2123-
evt_data.handle = p_cb->handle;
2123+
evt_data.handle = p_pcb->handle;
21242124
evt_data.req_id = wc->req_id;
21252125
evt_data.cong = p_pcb->cong;
21262126
bta_jv_pm_conn_busy(p_pcb->p_pm_cb);

components/bt/bluedroid/btc/profile/std/spp/btc_spp.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ static void *btc_spp_rfcomm_inter_cb(tBTA_JV_EVT event, tBTA_JV *p_data, void *u
183183
BTA_JvRfcommClose(slot->rfc_handle, (void *)slot->id);
184184
}
185185
free_spp_slot(slot);
186+
p_data->rfc_close.status = BTA_JV_SUCCESS;
186187
break;
187188
case BTA_JV_RFCOMM_DATA_IND_EVT:
188189
break;

0 commit comments

Comments
 (0)