mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-02-28 06:39:49 +00:00
update state before sending packet
This commit is contained in:
parent
aa3a388457
commit
2a544672af
@ -419,16 +419,16 @@ void l2cap_run(void){
|
||||
break;
|
||||
|
||||
case L2CAP_STATE_WILL_SEND_CONNECTION_RESPONSE_ACCEPT:
|
||||
l2cap_send_signaling_packet(channel->handle, CONNECTION_RESPONSE, channel->remote_sig_id, channel->local_cid, channel->remote_cid, 0, 0);
|
||||
channel->state = L2CAP_STATE_CONFIG;
|
||||
channel->state_var |= STATE_VAR_SEND_CONF_REQ;
|
||||
l2cap_send_signaling_packet(channel->handle, CONNECTION_RESPONSE, channel->remote_sig_id, channel->local_cid, channel->remote_cid, 0, 0);
|
||||
break;
|
||||
|
||||
case L2CAP_STATE_WILL_SEND_CONNECTION_REQUEST:
|
||||
// success, start l2cap handshake
|
||||
channel->local_sig_id = l2cap_next_sig_id();
|
||||
l2cap_send_signaling_packet( channel->handle, CONNECTION_REQUEST, channel->local_sig_id, channel->psm, channel->local_cid);
|
||||
channel->state = L2CAP_STATE_WAIT_CONNECT_RSP;
|
||||
l2cap_send_signaling_packet( channel->handle, CONNECTION_REQUEST, channel->local_sig_id, channel->psm, channel->local_cid);
|
||||
break;
|
||||
|
||||
case L2CAP_STATE_CONFIG:
|
||||
@ -460,8 +460,8 @@ void l2cap_run(void){
|
||||
|
||||
case L2CAP_STATE_WILL_SEND_DISCONNECT_REQUEST:
|
||||
channel->local_sig_id = l2cap_next_sig_id();
|
||||
l2cap_send_signaling_packet( channel->handle, DISCONNECTION_REQUEST, channel->local_sig_id, channel->remote_cid, channel->local_cid);
|
||||
channel->state = L2CAP_STATE_WAIT_DISCONNECT;
|
||||
l2cap_send_signaling_packet( channel->handle, DISCONNECTION_REQUEST, channel->local_sig_id, channel->remote_cid, channel->local_cid);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
10
src/rfcomm.c
10
src/rfcomm.c
@ -1381,18 +1381,18 @@ static void rfcomm_channel_state_machine(rfcomm_channel_t *channel, rfcomm_chann
|
||||
// (Although the handling of individual settings are implementation-dependent.)"
|
||||
//
|
||||
|
||||
// TODO: integrate in common swich
|
||||
// TODO: integrate in common switch
|
||||
if (event->type == CH_EVT_RCVD_RPN_CMD){
|
||||
|
||||
rfcomm_channel_event_rpn_t *event_rpn = (rfcomm_channel_event_rpn_t*) event;
|
||||
// control port parameters
|
||||
rfcomm_channel_event_rpn_t *event_rpn = (rfcomm_channel_event_rpn_t*) event;
|
||||
log_dbg("Received Remote Port Negotiation for #%u\n", channel->dlci);
|
||||
memcpy(&channel->rpn_data, &event_rpn->data, sizeof(rfcomm_rpn_data_t));
|
||||
channel->state_var |= STATE_VAR_SEND_RPN_RSP;
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: integrate in common swich
|
||||
// TODO: integrate in common switch
|
||||
if (event->type == CH_EVT_RCVD_RPN_REQ){
|
||||
|
||||
log_dbg("Received Remote Port Negotiation (Info) for #%u\n", channel->dlci);
|
||||
@ -1429,16 +1429,16 @@ static void rfcomm_channel_state_machine(rfcomm_channel_t *channel, rfcomm_chann
|
||||
switch (event->type){
|
||||
case CH_EVT_RCVD_SABM:
|
||||
log_dbg("-> Inform app\n");
|
||||
rfcomm_emit_connection_request(channel);
|
||||
channel->state_var |= STATE_VAR_RCVD_SABM;
|
||||
channel->state = RFCOMM_CHANNEL_INCOMING_SETUP;
|
||||
rfcomm_emit_connection_request(channel);
|
||||
break;
|
||||
case CH_EVT_RCVD_PN:
|
||||
rfcomm_channel_accept_pn(channel, event_pn);
|
||||
log_dbg("-> Inform app\n");
|
||||
rfcomm_emit_connection_request(channel);
|
||||
channel->state_var |= STATE_VAR_RCVD_PN;
|
||||
channel->state = RFCOMM_CHANNEL_INCOMING_SETUP;
|
||||
rfcomm_emit_connection_request(channel);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user