mirror of
https://github.com/espressif/openthread.git
synced 2026-08-18 00:19:52 +00:00
[sntp] simplify message allocation in Client::Query() (#12691)
This commit simplifies how the SNTP request message is allocated and constructed in `Client::Query()`. It removes the `NewMessage()` helper method, replacing its use with a direct message allocation from the socket followed by `Append()` to add the header. It also updates the error cleanup path to use the `FreeMessage()` macro.
This commit is contained in:
@@ -90,7 +90,9 @@ Error Client::Query(const otSntpQuery *aQuery, otSntpResponseHandler aHandler, v
|
||||
// Originate timestamp is used only as a unique token.
|
||||
header.SetTransmitTimestampSeconds(TimerMilli::GetNow().GetValue() / 1000 + kTimeAt1970);
|
||||
|
||||
VerifyOrExit((message = NewMessage(header)) != nullptr, error = kErrorNoBufs);
|
||||
message = mSocket.NewMessage();
|
||||
VerifyOrExit(message != nullptr, error = kErrorNoBufs);
|
||||
SuccessOrExit(error = message->Append(header));
|
||||
|
||||
messageInfo = AsCoreTypePtr(aQuery->mMessageInfo);
|
||||
|
||||
@@ -109,10 +111,7 @@ exit:
|
||||
|
||||
if (error != kErrorNone)
|
||||
{
|
||||
if (message)
|
||||
{
|
||||
message->Free();
|
||||
}
|
||||
FreeMessage(message);
|
||||
|
||||
if (messageCopy)
|
||||
{
|
||||
@@ -123,18 +122,6 @@ exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
Message *Client::NewMessage(const Header &aHeader)
|
||||
{
|
||||
Message *message = nullptr;
|
||||
|
||||
VerifyOrExit((message = mSocket.NewMessage(sizeof(aHeader))) != nullptr);
|
||||
IgnoreError(message->Prepend(aHeader));
|
||||
message->SetOffset(0);
|
||||
|
||||
exit:
|
||||
return message;
|
||||
}
|
||||
|
||||
Message *Client::CopyAndEnqueueMessage(const Message &aMessage, const QueryMetadata &aQueryMetadata)
|
||||
{
|
||||
Error error = kErrorNone;
|
||||
|
||||
@@ -247,7 +247,6 @@ private:
|
||||
uint8_t mRetransmissionCount; // Number of retransmissions
|
||||
};
|
||||
|
||||
Message *NewMessage(const Header &aHeader);
|
||||
Message *CopyAndEnqueueMessage(const Message &aMessage, const QueryMetadata &aQueryMetadata);
|
||||
void DequeueMessage(Message &aMessage);
|
||||
Error SendMessage(Message &aMessage, const Ip6::MessageInfo &aMessageInfo);
|
||||
|
||||
Reference in New Issue
Block a user