From 0c2148e803c00efab1e5c7d908cc9153bba32102 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Mon, 16 Mar 2026 15:34:13 -0700 Subject: [PATCH] [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. --- src/core/net/sntp_client.cpp | 21 ++++----------------- src/core/net/sntp_client.hpp | 1 - 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/src/core/net/sntp_client.cpp b/src/core/net/sntp_client.cpp index e06f5a771..91230e42e 100644 --- a/src/core/net/sntp_client.cpp +++ b/src/core/net/sntp_client.cpp @@ -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; diff --git a/src/core/net/sntp_client.hpp b/src/core/net/sntp_client.hpp index 3e6184000..071eda602 100644 --- a/src/core/net/sntp_client.hpp +++ b/src/core/net/sntp_client.hpp @@ -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);