[message] change SetOffset() to return void (#4949)

This commit is contained in:
Jonathan Hui
2020-05-13 10:16:19 -07:00
parent 2afbc59293
commit 1ce5064832
20 changed files with 37 additions and 53 deletions
+1 -4
View File
@@ -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.
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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;
+2 -2
View File
@@ -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;
+4 -11
View File
@@ -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());
+2 -5
View File
@@ -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.
+2 -2
View File
@@ -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)));
+1 -1
View File
@@ -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));
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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());
+4 -7
View File
@@ -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());
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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);
}
+2 -2
View File
@@ -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).
+3 -3
View File
@@ -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;
+4 -4
View File
@@ -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)
{
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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);
+2 -2
View File
@@ -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)));
+1 -1
View File
@@ -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);