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);