diff --git a/src/core/meshcop/dtls.cpp b/src/core/meshcop/dtls.cpp index 3dcdb5fb5..1651cd829 100644 --- a/src/core/meshcop/dtls.cpp +++ b/src/core/meshcop/dtls.cpp @@ -161,6 +161,8 @@ otError Dtls::Open(ReceiveHandler aReceiveHandler, ConnectedHandler aConnectedHa { otError error; + VerifyOrExit(mState == kStateClosed, error = OT_ERROR_ALREADY); + SuccessOrExit(error = mSocket.Open(&Dtls::HandleUdpReceive, this)); mReceiveHandler = aReceiveHandler;