diff --git a/src/core/meshcop/joiner.cpp b/src/core/meshcop/joiner.cpp index fbe612ebb..1d1596f5e 100644 --- a/src/core/meshcop/joiner.cpp +++ b/src/core/meshcop/joiner.cpp @@ -76,7 +76,7 @@ ThreadError Joiner::Start(const char *aPSKd) SuccessOrExit(error = mNetif.GetDtls().SetPsk(reinterpret_cast(aPSKd), static_cast(strlen(aPSKd)))); - SuccessOrExit(error = mNetif.GetMle().Discover(0, 0, OT_PANID_BROADCAST, HandleDiscoverResult, this)); + SuccessOrExit(error = mNetif.GetMle().Discover(0, 0, mNetif.GetMac().GetPanId(), HandleDiscoverResult, this)); exit: return error; @@ -99,6 +99,7 @@ void Joiner::HandleDiscoverResult(otActiveScanResult *aResult) { if (aResult != NULL) { + mJoinerRouterPanId = aResult->mPanId; mJoinerRouterChannel = aResult->mChannel; memcpy(&mJoinerRouter, &aResult->mExtAddress, sizeof(mJoinerRouter)); } @@ -110,6 +111,7 @@ void Joiner::HandleDiscoverResult(otActiveScanResult *aResult) mSocket.Open(&HandleUdpReceive, this); mSocket.Bind(sockaddr); + mNetif.GetMac().SetPanId(mJoinerRouterPanId); mNetif.GetMac().SetChannel(mJoinerRouterChannel); mNetif.GetIp6Filter().AddUnsecurePort(sockaddr.mPort); diff --git a/src/core/meshcop/joiner.hpp b/src/core/meshcop/joiner.hpp index eb203834e..37eb92953 100644 --- a/src/core/meshcop/joiner.hpp +++ b/src/core/meshcop/joiner.hpp @@ -103,6 +103,7 @@ private: void SendJoinerFinalize(void); uint8_t mJoinerRouterChannel; + uint16_t mJoinerRouterPanId; Mac::ExtAddress mJoinerRouter; Message *mTransmitMessage; Ip6::UdpSocket mSocket;