mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #14305 from paul-szczepanek-arm/cordio-host-fix-index
BLE: fix indexing of array in Cordio host stackpull/14334/head
commit
8340ea2d2b
|
@ -134,14 +134,14 @@ uint8_t attsCsfIsClientChangeAware(dmConnId_t connId, uint16_t handle)
|
||||||
/*!
|
/*!
|
||||||
* \brief Update client change-aware state based on protocol event.
|
* \brief Update client change-aware state based on protocol event.
|
||||||
*
|
*
|
||||||
* \param connId Connection handle.
|
* \param connId Connection ID.
|
||||||
* \param opcode ATT PDU type.
|
* \param opcode ATT PDU type.
|
||||||
* \param pPacket Data packet from L2CAP.
|
* \param pPacket Data packet from L2CAP.
|
||||||
*
|
*
|
||||||
* \return \ref ATT_SUCCESS if client is change-aware, else \ref ATT_ERR_DATABASE_OUT_OF_SYNC.
|
* \return \ref ATT_SUCCESS if client is change-aware, else \ref ATT_ERR_DATABASE_OUT_OF_SYNC.
|
||||||
*/
|
*/
|
||||||
/*************************************************************************************************/
|
/*************************************************************************************************/
|
||||||
uint8_t attsCsfActClientState(uint16_t handle, uint8_t opcode, uint8_t *pPacket)
|
uint8_t attsCsfActClientState(dmConnId_t connId, uint8_t opcode, uint8_t *pPacket)
|
||||||
{
|
{
|
||||||
uint8_t err = ATT_SUCCESS;
|
uint8_t err = ATT_SUCCESS;
|
||||||
attsCsfRec_t *pRec;
|
attsCsfRec_t *pRec;
|
||||||
|
@ -152,7 +152,7 @@ uint8_t attsCsfActClientState(uint16_t handle, uint8_t opcode, uint8_t *pPacket)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
pRec = &attsCsfCb.attsCsfTable[handle];
|
pRec = &attsCsfCb.attsCsfTable[connId - 1];
|
||||||
|
|
||||||
/* If the client is change-unaware */
|
/* If the client is change-unaware */
|
||||||
if (pRec->changeAwareState == ATTS_CLIENT_CHANGE_UNAWARE)
|
if (pRec->changeAwareState == ATTS_CLIENT_CHANGE_UNAWARE)
|
||||||
|
@ -167,7 +167,7 @@ uint8_t attsCsfActClientState(uint16_t handle, uint8_t opcode, uint8_t *pPacket)
|
||||||
/* Move client change-aware state to pending */
|
/* Move client change-aware state to pending */
|
||||||
pRec->changeAwareState = ATTS_CLIENT_CHANGE_PENDING_AWARE;
|
pRec->changeAwareState = ATTS_CLIENT_CHANGE_PENDING_AWARE;
|
||||||
|
|
||||||
ATT_TRACE_INFO2("ConnId %d change aware state is %d", handle + 1,
|
ATT_TRACE_INFO2("ConnId %d change aware state is %d", connId,
|
||||||
ATTS_CLIENT_CHANGE_PENDING_AWARE);
|
ATTS_CLIENT_CHANGE_PENDING_AWARE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,12 +189,12 @@ uint8_t attsCsfActClientState(uint16_t handle, uint8_t opcode, uint8_t *pPacket)
|
||||||
/* Move client change-aware state to aware */
|
/* Move client change-aware state to aware */
|
||||||
pRec->changeAwareState = ATTS_CLIENT_CHANGE_AWARE;
|
pRec->changeAwareState = ATTS_CLIENT_CHANGE_AWARE;
|
||||||
|
|
||||||
ATT_TRACE_INFO2("ConnId %d change aware state is %d", handle + 1, ATTS_CLIENT_CHANGE_AWARE);
|
ATT_TRACE_INFO2("ConnId %d change aware state is %d", connId, ATTS_CLIENT_CHANGE_AWARE);
|
||||||
|
|
||||||
/* Callback to application to store updated awareness, if bonded. */
|
/* Callback to application to store updated awareness, if bonded. */
|
||||||
if (attsCsfCb.writeCback != NULL)
|
if (attsCsfCb.writeCback != NULL)
|
||||||
{
|
{
|
||||||
attsCsfCb.writeCback(handle + 1, pRec->changeAwareState, &pRec->csf);
|
attsCsfCb.writeCback(connId, pRec->changeAwareState, &pRec->csf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -227,7 +227,7 @@ uint8_t attsCsfActClientState(uint16_t handle, uint8_t opcode, uint8_t *pPacket)
|
||||||
*/
|
*/
|
||||||
pRec->changeAwareState = ATTS_CLIENT_CHANGE_AWARE_DB_READ_PENDING;
|
pRec->changeAwareState = ATTS_CLIENT_CHANGE_AWARE_DB_READ_PENDING;
|
||||||
|
|
||||||
ATT_TRACE_INFO2("ConnId %d change aware state is %d", handle + 1,
|
ATT_TRACE_INFO2("ConnId %d change aware state is %d", connId,
|
||||||
ATTS_CLIENT_CHANGE_AWARE_DB_READ_PENDING);
|
ATTS_CLIENT_CHANGE_AWARE_DB_READ_PENDING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -235,7 +235,7 @@ uint8_t attsCsfActClientState(uint16_t handle, uint8_t opcode, uint8_t *pPacket)
|
||||||
|
|
||||||
if (err == ATT_ERR_DATABASE_OUT_OF_SYNC)
|
if (err == ATT_ERR_DATABASE_OUT_OF_SYNC)
|
||||||
{
|
{
|
||||||
ATT_TRACE_INFO2("ConnId %d out of sync, PDU with opcode 0x%02x ignored!", handle + 1, opcode);
|
ATT_TRACE_INFO2("ConnId %d out of sync, PDU with opcode 0x%02x ignored!", connId, opcode);
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
|
|
@ -166,7 +166,7 @@ static void eattsL2cCocDataInd(l2cCocEvt_t *pEvt)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check client's status to see if server is allowed to process this PDU. */
|
/* check client's status to see if server is allowed to process this PDU. */
|
||||||
err = attsCsfActClientState(connId - 1, opcode, pEvt->dataInd.pData - L2C_PAYLOAD_START);
|
err = attsCsfActClientState(connId, opcode, pEvt->dataInd.pData - L2C_PAYLOAD_START);
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
BYTES_TO_UINT16(attHandle, pEvt->dataInd.pData + ATT_HDR_LEN);
|
BYTES_TO_UINT16(attHandle, pEvt->dataInd.pData + ATT_HDR_LEN);
|
||||||
|
|
|
@ -182,7 +182,7 @@ static void attsDataCback(uint16_t handle, uint16_t len, uint8_t *pPacket)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check client's status to see if server is allowed to process this PDU. */
|
/* check client's status to see if server is allowed to process this PDU. */
|
||||||
err = attsCsfActClientState(handle, opcode, pPacket);
|
err = attsCsfActClientState(pCcb->connId, opcode, pPacket);
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
BYTES_TO_UINT16(attHandle, pPacket + L2C_PAYLOAD_START + ATT_HDR_LEN);
|
BYTES_TO_UINT16(attHandle, pPacket + L2C_PAYLOAD_START + ATT_HDR_LEN);
|
||||||
|
|
|
@ -164,7 +164,7 @@ void attsProcExecWriteReq(attsCcb_t *pCcb, uint16_t len, uint8_t *pPacket);
|
||||||
void attsProcValueCnf(attsCcb_t *pCcb, uint16_t len, uint8_t *pPacket);
|
void attsProcValueCnf(attsCcb_t *pCcb, uint16_t len, uint8_t *pPacket);
|
||||||
void attsProcReadMultiVarReq(attsCcb_t *pCcb, uint16_t len, uint8_t *pPacket);
|
void attsProcReadMultiVarReq(attsCcb_t *pCcb, uint16_t len, uint8_t *pPacket);
|
||||||
|
|
||||||
uint8_t attsCsfActClientState(uint16_t handle, uint8_t opcode, uint8_t *pPacket);
|
uint8_t attsCsfActClientState(dmConnId_t connId, uint8_t opcode, uint8_t *pPacket);
|
||||||
uint8_t attsCsfIsClientChangeAware(dmConnId_t connId, uint16_t handle);
|
uint8_t attsCsfIsClientChangeAware(dmConnId_t connId, uint16_t handle);
|
||||||
void attsCsfSetHashUpdateStatus(bool_t isUpdating);
|
void attsCsfSetHashUpdateStatus(bool_t isUpdating);
|
||||||
uint8_t attsCsfGetHashUpdateStatus(void);
|
uint8_t attsCsfGetHashUpdateStatus(void);
|
||||||
|
|
Loading…
Reference in New Issue