mirror of
https://github.com/espressif/openthread.git
synced 2026-07-29 07:07:47 +00:00
[message] change SetOffset() to return void (#4949)
This commit is contained in:
@@ -188,9 +188,6 @@ uint16_t otMessageGetOffset(const otMessage *aMessage);
|
||||
* @param[in] aMessage A pointer to a message buffer.
|
||||
* @param[in] aOffset An offset in bytes.
|
||||
*
|
||||
* @retval OT_ERROR_NONE Successfully set the message offset.
|
||||
* @retval OT_ERROR_INVALID_ARGS The offset is beyond the message length.
|
||||
*
|
||||
* @sa otMessageFree
|
||||
* @sa otMessageAppend
|
||||
* @sa otMessageGetLength
|
||||
@@ -200,7 +197,7 @@ uint16_t otMessageGetOffset(const otMessage *aMessage);
|
||||
* @sa otMessageWrite
|
||||
*
|
||||
*/
|
||||
otError otMessageSetOffset(otMessage *aMessage, uint16_t aOffset);
|
||||
void otMessageSetOffset(otMessage *aMessage, uint16_t aOffset);
|
||||
|
||||
/**
|
||||
* This function indicates whether or not link security is enabled for the message.
|
||||
|
||||
@@ -63,10 +63,10 @@ uint16_t otMessageGetOffset(const otMessage *aMessage)
|
||||
return message.GetOffset();
|
||||
}
|
||||
|
||||
otError otMessageSetOffset(otMessage *aMessage, uint16_t aOffset)
|
||||
void otMessageSetOffset(otMessage *aMessage, uint16_t aOffset)
|
||||
{
|
||||
Message &message = *static_cast<Message *>(aMessage);
|
||||
return message.SetOffset(aOffset);
|
||||
message.SetOffset(aOffset);
|
||||
}
|
||||
|
||||
bool otMessageIsLinkSecurityEnabled(const otMessage *aMessage)
|
||||
|
||||
@@ -118,7 +118,7 @@ Message *CoapBase::NewMessage(const otMessageSettings *aSettings)
|
||||
Message *message = NULL;
|
||||
|
||||
VerifyOrExit((message = static_cast<Message *>(Get<Ip6::Udp>().NewMessage(0, aSettings))) != NULL, OT_NOOP);
|
||||
IgnoreError(message->SetOffset(0));
|
||||
message->SetOffset(0);
|
||||
|
||||
exit:
|
||||
return message;
|
||||
|
||||
@@ -47,7 +47,7 @@ void Message::Init(void)
|
||||
{
|
||||
GetHelpData().Clear();
|
||||
SetVersion(kVersion1);
|
||||
IgnoreError(SetOffset(0));
|
||||
SetOffset(0);
|
||||
GetHelpData().mHeaderLength = kMinHeaderLength;
|
||||
|
||||
IgnoreError(SetLength(GetHelpData().mHeaderLength));
|
||||
@@ -235,7 +235,7 @@ otError Message::SetPayloadMarker(void)
|
||||
GetHelpData().mHeaderLength = GetLength();
|
||||
|
||||
// Set offset to the start of payload.
|
||||
IgnoreError(SetOffset(GetHelpData().mHeaderLength));
|
||||
SetOffset(GetHelpData().mHeaderLength);
|
||||
|
||||
exit:
|
||||
return error;
|
||||
|
||||
@@ -289,7 +289,7 @@ otError Message::SetLength(uint16_t aLength)
|
||||
// Correct offset in case shorter length is set.
|
||||
if (GetOffset() > aLength)
|
||||
{
|
||||
IgnoreError(SetOffset(aLength));
|
||||
SetOffset(aLength);
|
||||
}
|
||||
|
||||
exit:
|
||||
@@ -322,17 +322,10 @@ exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
otError Message::SetOffset(uint16_t aOffset)
|
||||
void Message::SetOffset(uint16_t aOffset)
|
||||
{
|
||||
otError error = OT_ERROR_NONE;
|
||||
|
||||
OT_ASSERT(aOffset <= GetLength());
|
||||
VerifyOrExit(aOffset <= GetLength(), error = OT_ERROR_INVALID_ARGS);
|
||||
|
||||
mBuffer.mHead.mInfo.mOffset = aOffset;
|
||||
|
||||
exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
bool Message::IsSubTypeMle(void) const
|
||||
@@ -426,7 +419,7 @@ otError Message::Prepend(const void *aBuf, uint16_t aLength)
|
||||
|
||||
SetReserved(GetReserved() - aLength);
|
||||
mBuffer.mHead.mInfo.mLength += aLength;
|
||||
IgnoreError(SetOffset(GetOffset() + aLength));
|
||||
SetOffset(GetOffset() + aLength);
|
||||
|
||||
if (aBuf != NULL)
|
||||
{
|
||||
@@ -641,7 +634,7 @@ Message *Message::Clone(uint16_t aLength) const
|
||||
|
||||
// Copy selected message information.
|
||||
offset = GetOffset() < aLength ? GetOffset() : aLength;
|
||||
IgnoreError(messageCopy->SetOffset(offset));
|
||||
messageCopy->SetOffset(offset);
|
||||
|
||||
messageCopy->SetSubType(GetSubType());
|
||||
messageCopy->SetLinkSecurityEnabled(IsLinkSecurityEnabled());
|
||||
|
||||
@@ -295,13 +295,10 @@ public:
|
||||
/**
|
||||
* This method sets the byte offset within the message.
|
||||
*
|
||||
* @param[in] aOffset The number of bytes to move the current offset, which may be positive or negative.
|
||||
*
|
||||
* @retval OT_ERROR_NONE Successfully moved the byte offset.
|
||||
* @retval OT_ERROR_INVALID_ARGS The requested byte offset is not within the existing message.
|
||||
* @param[in] aOffset The byte offset within the message.
|
||||
*
|
||||
*/
|
||||
otError SetOffset(uint16_t aOffset);
|
||||
void SetOffset(uint16_t aOffset);
|
||||
|
||||
/**
|
||||
* This method returns the type of the message.
|
||||
|
||||
@@ -927,7 +927,7 @@ void Commissioner::HandleRelayReceive(Coap::Message &aMessage, const Ip6::Messag
|
||||
mJoinerIid[2], mJoinerIid[3], mJoinerIid[4], mJoinerIid[5], mJoinerIid[6], mJoinerIid[7],
|
||||
mJoinerRloc);
|
||||
|
||||
IgnoreError(aMessage.SetOffset(offset));
|
||||
aMessage.SetOffset(offset);
|
||||
SuccessOrExit(error = aMessage.SetLength(offset + length));
|
||||
|
||||
joinerMessageInfo.SetPeerAddr(Get<Mle::MleRouter>().GetMeshLocal64());
|
||||
@@ -1011,7 +1011,7 @@ void Commissioner::SendJoinFinalizeResponse(const Coap::Message &aRequest, State
|
||||
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aRequest));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
IgnoreError(message->SetOffset(message->GetLength()));
|
||||
message->SetOffset(message->GetLength());
|
||||
message->SetSubType(Message::kSubTypeJoinerFinalizeResponse);
|
||||
|
||||
SuccessOrExit(error = Tlv::AppendUint8Tlv(*message, Tlv::kState, static_cast<uint8_t>(aState)));
|
||||
|
||||
@@ -405,7 +405,7 @@ otError Joiner::PrepareJoinerFinalizeMessage(const char *aProvisioningUrl,
|
||||
mFinalizeMessage->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
SuccessOrExit(error = mFinalizeMessage->AppendUriPathOptions(OT_URI_PATH_JOINER_FINALIZE));
|
||||
SuccessOrExit(error = mFinalizeMessage->SetPayloadMarker());
|
||||
IgnoreError(mFinalizeMessage->SetOffset(mFinalizeMessage->GetLength()));
|
||||
mFinalizeMessage->SetOffset(mFinalizeMessage->GetLength());
|
||||
|
||||
SuccessOrExit(error = Tlv::AppendUint8Tlv(*mFinalizeMessage, Tlv::kState, StateTlv::kAccept));
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ Message *Client::NewMessage(const Header &aHeader)
|
||||
|
||||
VerifyOrExit((message = mSocket.NewMessage(sizeof(aHeader))) != NULL, OT_NOOP);
|
||||
IgnoreError(message->Prepend(&aHeader, sizeof(aHeader)));
|
||||
IgnoreError(message->SetOffset(0));
|
||||
message->SetOffset(0);
|
||||
|
||||
exit:
|
||||
return message;
|
||||
|
||||
@@ -78,7 +78,7 @@ otError Icmp::SendEchoRequest(Message &aMessage, const MessageInfo &aMessageInfo
|
||||
icmpHeader.SetSequence(mEchoSequence++);
|
||||
|
||||
SuccessOrExit(error = aMessage.Prepend(&icmpHeader, sizeof(icmpHeader)));
|
||||
IgnoreError(aMessage.SetOffset(0));
|
||||
aMessage.SetOffset(0);
|
||||
SuccessOrExit(error = Get<Ip6>().SendDatagram(aMessage, messageInfoLocal, kProtoIcmp6));
|
||||
|
||||
otLogInfoIcmp("Sent echo request: (seq = %d)", icmpHeader.GetSequence());
|
||||
|
||||
@@ -681,7 +681,7 @@ otError Ip6::FragmentDatagram(Message &aMessage, uint8_t aIpProto)
|
||||
assertValue = fragment->Write(0, sizeof(header), &header);
|
||||
OT_ASSERT(assertValue == sizeof(header));
|
||||
|
||||
SuccessOrExit(error = fragment->SetOffset(aMessage.GetOffset()));
|
||||
fragment->SetOffset(aMessage.GetOffset());
|
||||
assertValue = fragment->Write(aMessage.GetOffset(), sizeof(fragmentHeader), &fragmentHeader);
|
||||
OT_ASSERT(assertValue == sizeof(fragmentHeader));
|
||||
|
||||
@@ -771,7 +771,7 @@ otError Ip6::HandleFragment(Message &aMessage, Netif *aNetif, MessageInfo &aMess
|
||||
SuccessOrExit(error = message->SetLength(aMessage.GetOffset()));
|
||||
|
||||
message->SetTimeout(kIp6ReassemblyTimeout);
|
||||
SuccessOrExit(error = message->SetOffset(0));
|
||||
message->SetOffset(0);
|
||||
message->SetDatagramTag(fragmentHeader.GetIdentification());
|
||||
|
||||
// copying the non-fragmentable header to the fragmentation buffer
|
||||
@@ -803,11 +803,8 @@ otError Ip6::HandleFragment(Message &aMessage, Netif *aNetif, MessageInfo &aMess
|
||||
if (!fragmentHeader.IsMoreFlagSet())
|
||||
{
|
||||
// use the offset value for the whole ip message length
|
||||
SuccessOrExit(error = message->SetOffset(offset + payloadFragment + aMessage.GetOffset()));
|
||||
}
|
||||
message->SetOffset(aMessage.GetOffset() + offset + payloadFragment);
|
||||
|
||||
if (message->GetOffset() >= message->GetLength())
|
||||
{
|
||||
// creates the header for the reassembled ipv6 package
|
||||
VerifyOrExit(aMessage.Read(0, sizeof(header), &header) == sizeof(header), error = OT_ERROR_PARSE);
|
||||
header.SetPayloadLength(message->GetLength() - sizeof(header));
|
||||
@@ -1217,7 +1214,7 @@ otError Ip6::HandleDatagram(Message &aMessage, Netif *aNetif, const void *aLinkM
|
||||
}
|
||||
}
|
||||
|
||||
IgnoreError(aMessage.SetOffset(sizeof(header)));
|
||||
aMessage.SetOffset(sizeof(header));
|
||||
|
||||
// process IPv6 Extension Headers
|
||||
nextHeader = static_cast<uint8_t>(header.GetNextHeader());
|
||||
|
||||
@@ -179,7 +179,7 @@ Message *Client::NewMessage(const Header &aHeader)
|
||||
|
||||
VerifyOrExit((message = mSocket.NewMessage(sizeof(aHeader))) != NULL, OT_NOOP);
|
||||
IgnoreError(message->Prepend(&aHeader, sizeof(aHeader)));
|
||||
IgnoreError(message->SetOffset(0));
|
||||
message->SetOffset(0);
|
||||
|
||||
exit:
|
||||
return message;
|
||||
|
||||
@@ -288,7 +288,7 @@ otError Udp::SendDatagram(Message &aMessage, MessageInfo &aMessageInfo, uint8_t
|
||||
udpHeader.SetChecksum(0);
|
||||
|
||||
SuccessOrExit(error = aMessage.Prepend(&udpHeader, sizeof(udpHeader)));
|
||||
IgnoreError(aMessage.SetOffset(0));
|
||||
aMessage.SetOffset(0);
|
||||
|
||||
error = Get<Ip6>().SendDatagram(aMessage, aMessageInfo, aIpProto);
|
||||
}
|
||||
|
||||
@@ -376,11 +376,11 @@ uint16_t IndirectSender::PrepareDataFrame(Mac::TxFrame &aFrame, Child &aChild, M
|
||||
// Prepare the data frame from previous child's indirect offset.
|
||||
|
||||
directTxOffset = aMessage.GetOffset();
|
||||
IgnoreError(aMessage.SetOffset(aChild.GetIndirectFragmentOffset()));
|
||||
aMessage.SetOffset(aChild.GetIndirectFragmentOffset());
|
||||
|
||||
nextOffset = Get<MeshForwarder>().PrepareDataFrame(aFrame, aMessage, macSource, macDest);
|
||||
|
||||
IgnoreError(aMessage.SetOffset(directTxOffset));
|
||||
aMessage.SetOffset(directTxOffset);
|
||||
|
||||
// Set `FramePending` if there are more queued messages (excluding
|
||||
// the current one being sent out) for the child (note `> 1` check).
|
||||
|
||||
@@ -460,7 +460,7 @@ exit:
|
||||
}
|
||||
else
|
||||
{
|
||||
IgnoreError(aMessage.SetOffset(startOffset));
|
||||
aMessage.SetOffset(startOffset);
|
||||
}
|
||||
|
||||
return error;
|
||||
@@ -554,7 +554,7 @@ exit:
|
||||
}
|
||||
else
|
||||
{
|
||||
IgnoreError(aMessage.SetOffset(startOffset));
|
||||
aMessage.SetOffset(startOffset);
|
||||
}
|
||||
|
||||
return error;
|
||||
@@ -611,7 +611,7 @@ exit:
|
||||
}
|
||||
else
|
||||
{
|
||||
IgnoreError(aMessage.SetOffset(startOffset));
|
||||
aMessage.SetOffset(startOffset);
|
||||
}
|
||||
|
||||
return error;
|
||||
|
||||
@@ -719,7 +719,7 @@ start:
|
||||
if ((!aMessage.IsLinkSecurityEnabled()) && aMessage.IsSubTypeMle())
|
||||
{
|
||||
// Enable security and try again.
|
||||
IgnoreError(aMessage.SetOffset(0));
|
||||
aMessage.SetOffset(0);
|
||||
aMessage.SetLinkSecurityEnabled(true);
|
||||
goto start;
|
||||
}
|
||||
@@ -753,7 +753,7 @@ start:
|
||||
aFrame.SetPayloadLength(headerLength + payloadLength);
|
||||
|
||||
nextOffset = aMessage.GetOffset() + payloadLength;
|
||||
IgnoreError(aMessage.SetOffset(0));
|
||||
aMessage.SetOffset(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -865,14 +865,14 @@ void MeshForwarder::HandleSentFrame(Mac::TxFrame &aFrame, otError aError)
|
||||
|
||||
if (mMessageNextOffset < mSendMessage->GetLength())
|
||||
{
|
||||
IgnoreError(mSendMessage->SetOffset(mMessageNextOffset));
|
||||
mSendMessage->SetOffset(mMessageNextOffset);
|
||||
}
|
||||
else
|
||||
{
|
||||
otError txError = aError;
|
||||
|
||||
mSendMessage->ClearDirectTransmission();
|
||||
IgnoreError(mSendMessage->SetOffset(0));
|
||||
mSendMessage->SetOffset(0);
|
||||
|
||||
if (neighbor != NULL)
|
||||
{
|
||||
|
||||
@@ -50,7 +50,7 @@ otError MeshForwarder::SendMessage(Message &aMessage)
|
||||
otError error = OT_ERROR_NONE;
|
||||
Neighbor * neighbor;
|
||||
|
||||
IgnoreError(aMessage.SetOffset(0));
|
||||
aMessage.SetOffset(0);
|
||||
aMessage.SetDatagramTag(0);
|
||||
mSendQueue.Enqueue(aMessage);
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace ot {
|
||||
otError MeshForwarder::SendMessage(Message &aMessage)
|
||||
{
|
||||
aMessage.SetDirectTransmission();
|
||||
IgnoreError(aMessage.SetOffset(0));
|
||||
aMessage.SetOffset(0);
|
||||
aMessage.SetDatagramTag(0);
|
||||
|
||||
mSendQueue.Enqueue(aMessage);
|
||||
|
||||
@@ -2550,7 +2550,7 @@ otError Mle::SendMessage(Message &aMessage, const Ip6::Address &aDestination)
|
||||
aesCcm.Header(&aDestination, sizeof(aDestination));
|
||||
aesCcm.Header(header.GetBytes() + 1, header.GetHeaderLength());
|
||||
|
||||
IgnoreError(aMessage.SetOffset(header.GetLength() - 1));
|
||||
aMessage.SetOffset(header.GetLength() - 1);
|
||||
|
||||
while (aMessage.GetOffset() < aMessage.GetLength())
|
||||
{
|
||||
@@ -2709,7 +2709,7 @@ void Mle::HandleUdpReceive(Message &aMessage, const Ip6::MessageInfo &aMessageIn
|
||||
Get<KeyManager>().SetCurrentKeySequence(keySequence);
|
||||
}
|
||||
|
||||
IgnoreError(aMessage.SetOffset(mleOffset));
|
||||
aMessage.SetOffset(mleOffset);
|
||||
|
||||
aMessage.Read(aMessage.GetOffset(), sizeof(command), &command);
|
||||
IgnoreError(aMessage.MoveOffset(sizeof(command)));
|
||||
|
||||
@@ -288,7 +288,7 @@ void Leader::HandleCommissioningGet(Coap::Message &aMessage, const Ip6::MessageI
|
||||
uint16_t offset;
|
||||
|
||||
SuccessOrExit(Tlv::GetValueOffset(aMessage, MeshCoP::Tlv::kGet, offset, length));
|
||||
IgnoreError(aMessage.SetOffset(offset));
|
||||
aMessage.SetOffset(offset);
|
||||
|
||||
exit:
|
||||
SendCommissioningGetResponse(aMessage, length, aMessageInfo);
|
||||
|
||||
Reference in New Issue
Block a user