From 80f982301ca199edfacdd8176f037822a3d144fc Mon Sep 17 00:00:00 2001 From: Yakun Xu Date: Tue, 13 Aug 2019 01:46:51 +0800 Subject: [PATCH] [dtls] remove unnecessary member variables (#4090) --- src/core/meshcop/dtls.cpp | 20 ++++++++------------ src/core/meshcop/dtls.hpp | 9 ++------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/core/meshcop/dtls.cpp b/src/core/meshcop/dtls.cpp index 7079cfbc8..eb3a1d8d8 100644 --- a/src/core/meshcop/dtls.cpp +++ b/src/core/meshcop/dtls.cpp @@ -66,8 +66,6 @@ Dtls::Dtls(Instance &aInstance, bool aLayerTwoSecurity) , mTimerSet(false) , mLayerTwoSecurity(aLayerTwoSecurity) , mReceiveMessage(NULL) - , mReceiveOffset(0) - , mReceiveLength(0) , mConnectedHandler(NULL) , mReceiveHandler(NULL) , mSendHandler(NULL) @@ -207,7 +205,7 @@ void Dtls::HandleUdpReceive(Message &aMessage, const Ip6::MessageInfo &aMessageI } #endif - Receive(aMessage, aMessage.GetOffset(), aMessage.GetLength() - aMessage.GetOffset()); + Receive(aMessage); exit: return; @@ -568,11 +566,9 @@ exit: return error; } -void Dtls::Receive(Message &aMessage, uint16_t aOffset, uint16_t aLength) +void Dtls::Receive(Message &aMessage) { mReceiveMessage = &aMessage; - mReceiveOffset = aOffset; - mReceiveLength = aLength; Process(); @@ -644,16 +640,16 @@ int Dtls::HandleMbedtlsReceive(unsigned char *aBuf, size_t aLength) } #endif // OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE - VerifyOrExit(mReceiveMessage != NULL && mReceiveLength != 0, rval = MBEDTLS_ERR_SSL_WANT_READ); + VerifyOrExit(mReceiveMessage != NULL && (rval = mReceiveMessage->GetLength() - mReceiveMessage->GetOffset()) > 0, + rval = MBEDTLS_ERR_SSL_WANT_READ); - if (aLength > mReceiveLength) + if (aLength > static_cast(rval)) { - aLength = mReceiveLength; + aLength = static_cast(rval); } - rval = mReceiveMessage->Read(mReceiveOffset, static_cast(aLength), aBuf); - mReceiveOffset += static_cast(rval); - mReceiveLength -= static_cast(rval); + rval = mReceiveMessage->Read(mReceiveMessage->GetOffset(), static_cast(aLength), aBuf); + mReceiveMessage->MoveOffset(rval); exit: return rval; diff --git a/src/core/meshcop/dtls.hpp b/src/core/meshcop/dtls.hpp index 31a56bba7..f133eb038 100644 --- a/src/core/meshcop/dtls.hpp +++ b/src/core/meshcop/dtls.hpp @@ -364,11 +364,9 @@ public: * This method provides a received DTLS message to the DTLS object. * * @param[in] aMessage A reference to the message. - * @param[in] aOffset The offset within @p aMessage where the DTLS message starts. - * @param[in] aLength The size of the DTLS message (bytes). * */ - void Receive(Message &aMessage, uint16_t aOffset, uint16_t aLength); + void Receive(Message &aMessage); /** * This method sets the default message sub-type that will be used for all messages without defined @@ -488,10 +486,7 @@ private: bool mLayerTwoSecurity : 1; - const Message *mReceiveMessage; - - uint16_t mReceiveOffset; - uint16_t mReceiveLength; + Message *mReceiveMessage; ConnectedHandler mConnectedHandler; ReceiveHandler mReceiveHandler;