[border-agent] simplify SendErrorMessage in CoapDtlsSession (#12115)

Consolidates the two overloaded `SendErrorMessage()` methods in the
`CoapDtlsSession` class into a single implementation.

The new `SendErrorMessage()` method now accepts the token information
directly, rather than a `Coap::Message` or a `ForwardContext` object.
This simplifies the call sites and removes the now-unused
`CoapCodeFromError()` helper function (the conversion is now done
in the consolidated `SendErrorMessage()`).
This commit is contained in:
Abtin Keshavarzian
2025-11-07 07:11:45 -08:00
committed by GitHub
parent 32f6629f84
commit 4a0543956e
2 changed files with 8 additions and 44 deletions
+7 -40
View File
@@ -331,28 +331,6 @@ Manager::CoapDtlsSession *Manager::FindActiveCommissionerSession(void)
return commissionerSession;
}
Coap::Message::Code Manager::CoapCodeFromError(Error aError)
{
Coap::Message::Code code;
switch (aError)
{
case kErrorNone:
code = Coap::kCodeChanged;
break;
case kErrorParse:
code = Coap::kCodeBadRequest;
break;
default:
code = Coap::kCodeInternalError;
break;
}
return code;
}
template <> void Manager::HandleTmf<kUriRelayRx>(Coap::Message &aMessage, const Ip6::MessageInfo &aMessageInfo)
{
// This is from TMF agent.
@@ -1115,7 +1093,7 @@ exit:
if (error != kErrorNone)
{
SendErrorMessage(aMessage, error);
SendErrorMessage(error, aMessage.GetToken(), aMessage.GetTokenLength());
}
return error;
@@ -1188,7 +1166,7 @@ exit:
{
LogWarn("Commissioner request failed: %s", ErrorToString(error));
SendErrorMessage(aForwardContext, error);
SendErrorMessage(error, aForwardContext.mToken, aForwardContext.mTokenLength);
}
}
@@ -1258,31 +1236,20 @@ exit:
return error;
}
void Manager::CoapDtlsSession::SendErrorMessage(const ForwardContext &aForwardContext, Error aError)
void Manager::CoapDtlsSession::SendErrorMessage(Error aError, const uint8_t *aToken, uint8_t aTokenLength)
{
Error error = kErrorNone;
OwnedPtr<Coap::Message> message;
Coap::Message::Code code;
message.Reset(NewPriorityMessage());
VerifyOrExit(message != nullptr, error = kErrorNoBufs);
SuccessOrExit(error = aForwardContext.ToHeader(*message, CoapCodeFromError(aError)));
SuccessOrExit(error = SendMessage(message.PassOwnership()));
code = (aError == kErrorParse) ? Coap::kCodeBadRequest : Coap::kCodeInternalError;
exit:
LogWarnOnError(error, "send error CoAP message");
}
message->Init(Coap::kTypeNonConfirmable, code);
SuccessOrExit(error = message->SetToken(aToken, aTokenLength));
void Manager::CoapDtlsSession::SendErrorMessage(const Coap::Message &aRequest, Error aError)
{
Error error = kErrorNone;
OwnedPtr<Coap::Message> message;
message.Reset(NewPriorityMessage());
VerifyOrExit(message != nullptr, error = kErrorNoBufs);
message->Init(Coap::kTypeNonConfirmable, CoapCodeFromError(aError));
SuccessOrExit(error = message->SetTokenFromMessage(aRequest));
SuccessOrExit(error = SendMessage(message.PassOwnership()));
exit:
+1 -4
View File
@@ -327,8 +327,7 @@ private:
void HandleTmfProxyTx(Coap::Message &aMessage);
void HandleTmfDatasetGet(Coap::Message &aMessage, Uri aUri);
Error ForwardToLeader(const Coap::Message &aMessage, const Ip6::MessageInfo &aMessageInfo, Uri aUri);
void SendErrorMessage(const ForwardContext &aForwardContext, Error aError);
void SendErrorMessage(const Coap::Message &aRequest, Error aError);
void SendErrorMessage(Error aError, const uint8_t *aToken, uint8_t aTokenLength);
static void HandleConnected(ConnectEvent aEvent, void *aContext);
void HandleConnected(ConnectEvent aEvent);
@@ -372,8 +371,6 @@ private:
void HandleSessionDisconnected(CoapDtlsSession &aSession, CoapDtlsSession::ConnectEvent aEvent);
void HandleCommissionerPetitionAccepted(CoapDtlsSession &aSession);
static Coap::Message::Code CoapCodeFromError(Error aError);
void PostServiceTask(void);
void HandleServiceTask(void);
#if OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE