From 1ce5064832c5709e116e45a7fe27fafd54176331 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Mon, 11 May 2020 21:51:46 -0700 Subject: [PATCH] [message] change SetOffset() to return void (#4949) --- include/openthread/message.h | 5 +---- src/core/api/message_api.cpp | 4 ++-- src/core/coap/coap.cpp | 2 +- src/core/coap/coap_message.cpp | 4 ++-- src/core/common/message.cpp | 15 ++++----------- src/core/common/message.hpp | 7 ++----- src/core/meshcop/commissioner.cpp | 4 ++-- src/core/meshcop/joiner.cpp | 2 +- src/core/net/dns_client.cpp | 2 +- src/core/net/icmp6.cpp | 2 +- src/core/net/ip6.cpp | 11 ++++------- src/core/net/sntp_client.cpp | 2 +- src/core/net/udp6.cpp | 2 +- src/core/thread/indirect_sender.cpp | 4 ++-- src/core/thread/lowpan.cpp | 6 +++--- src/core/thread/mesh_forwarder.cpp | 8 ++++---- src/core/thread/mesh_forwarder_ftd.cpp | 2 +- src/core/thread/mesh_forwarder_mtd.cpp | 2 +- src/core/thread/mle.cpp | 4 ++-- src/core/thread/network_data_leader_ftd.cpp | 2 +- 20 files changed, 37 insertions(+), 53 deletions(-) diff --git a/include/openthread/message.h b/include/openthread/message.h index 4e958601c..ba3527944 100644 --- a/include/openthread/message.h +++ b/include/openthread/message.h @@ -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. diff --git a/src/core/api/message_api.cpp b/src/core/api/message_api.cpp index 32e270e97..d02aa097f 100644 --- a/src/core/api/message_api.cpp +++ b/src/core/api/message_api.cpp @@ -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(aMessage); - return message.SetOffset(aOffset); + message.SetOffset(aOffset); } bool otMessageIsLinkSecurityEnabled(const otMessage *aMessage) diff --git a/src/core/coap/coap.cpp b/src/core/coap/coap.cpp index f860c3ebe..8158e5f0e 100644 --- a/src/core/coap/coap.cpp +++ b/src/core/coap/coap.cpp @@ -118,7 +118,7 @@ Message *CoapBase::NewMessage(const otMessageSettings *aSettings) Message *message = NULL; VerifyOrExit((message = static_cast(Get().NewMessage(0, aSettings))) != NULL, OT_NOOP); - IgnoreError(message->SetOffset(0)); + message->SetOffset(0); exit: return message; diff --git a/src/core/coap/coap_message.cpp b/src/core/coap/coap_message.cpp index ce0af47af..e3cc6486c 100644 --- a/src/core/coap/coap_message.cpp +++ b/src/core/coap/coap_message.cpp @@ -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; diff --git a/src/core/common/message.cpp b/src/core/common/message.cpp index d8ff222cb..8ab66c534 100644 --- a/src/core/common/message.cpp +++ b/src/core/common/message.cpp @@ -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()); diff --git a/src/core/common/message.hpp b/src/core/common/message.hpp index 5530d639f..53613ed9c 100644 --- a/src/core/common/message.hpp +++ b/src/core/common/message.hpp @@ -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. diff --git a/src/core/meshcop/commissioner.cpp b/src/core/meshcop/commissioner.cpp index df2befd0d..e48bcdfe7 100644 --- a/src/core/meshcop/commissioner.cpp +++ b/src/core/meshcop/commissioner.cpp @@ -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().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(aState))); diff --git a/src/core/meshcop/joiner.cpp b/src/core/meshcop/joiner.cpp index 36345f07c..dad7e3b96 100644 --- a/src/core/meshcop/joiner.cpp +++ b/src/core/meshcop/joiner.cpp @@ -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)); diff --git a/src/core/net/dns_client.cpp b/src/core/net/dns_client.cpp index 65a3cddbd..472e9abe0 100644 --- a/src/core/net/dns_client.cpp +++ b/src/core/net/dns_client.cpp @@ -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; diff --git a/src/core/net/icmp6.cpp b/src/core/net/icmp6.cpp index 54332bfa1..1ebd65fcd 100644 --- a/src/core/net/icmp6.cpp +++ b/src/core/net/icmp6.cpp @@ -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().SendDatagram(aMessage, messageInfoLocal, kProtoIcmp6)); otLogInfoIcmp("Sent echo request: (seq = %d)", icmpHeader.GetSequence()); diff --git a/src/core/net/ip6.cpp b/src/core/net/ip6.cpp index d2db236b0..9b89a1655 100644 --- a/src/core/net/ip6.cpp +++ b/src/core/net/ip6.cpp @@ -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(header.GetNextHeader()); diff --git a/src/core/net/sntp_client.cpp b/src/core/net/sntp_client.cpp index c5ad9db83..64b383f75 100644 --- a/src/core/net/sntp_client.cpp +++ b/src/core/net/sntp_client.cpp @@ -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; diff --git a/src/core/net/udp6.cpp b/src/core/net/udp6.cpp index c95ce59fd..2b8d99134 100644 --- a/src/core/net/udp6.cpp +++ b/src/core/net/udp6.cpp @@ -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().SendDatagram(aMessage, aMessageInfo, aIpProto); } diff --git a/src/core/thread/indirect_sender.cpp b/src/core/thread/indirect_sender.cpp index df15c258e..0592c042a 100644 --- a/src/core/thread/indirect_sender.cpp +++ b/src/core/thread/indirect_sender.cpp @@ -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().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). diff --git a/src/core/thread/lowpan.cpp b/src/core/thread/lowpan.cpp index 71e8b7f53..dfcb72bb6 100644 --- a/src/core/thread/lowpan.cpp +++ b/src/core/thread/lowpan.cpp @@ -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; diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index 9574bbd54..4df3a0f3d 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -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) { diff --git a/src/core/thread/mesh_forwarder_ftd.cpp b/src/core/thread/mesh_forwarder_ftd.cpp index 489c63749..90d5140dc 100644 --- a/src/core/thread/mesh_forwarder_ftd.cpp +++ b/src/core/thread/mesh_forwarder_ftd.cpp @@ -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); diff --git a/src/core/thread/mesh_forwarder_mtd.cpp b/src/core/thread/mesh_forwarder_mtd.cpp index dcd0c9ea8..99b75eaf7 100644 --- a/src/core/thread/mesh_forwarder_mtd.cpp +++ b/src/core/thread/mesh_forwarder_mtd.cpp @@ -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); diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index c172cd60c..1898a70b4 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -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().SetCurrentKeySequence(keySequence); } - IgnoreError(aMessage.SetOffset(mleOffset)); + aMessage.SetOffset(mleOffset); aMessage.Read(aMessage.GetOffset(), sizeof(command), &command); IgnoreError(aMessage.MoveOffset(sizeof(command))); diff --git a/src/core/thread/network_data_leader_ftd.cpp b/src/core/thread/network_data_leader_ftd.cpp index 6a3876aed..b9a4a7b0c 100644 --- a/src/core/thread/network_data_leader_ftd.cpp +++ b/src/core/thread/network_data_leader_ftd.cpp @@ -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);