mirror of
https://github.com/espressif/openthread.git
synced 2026-06-06 05:24:51 +00:00
[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:
committed by
GitHub
parent
32f6629f84
commit
4a0543956e
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user