Recalculate CRC16 when starting joining (#1706)

* recalculate crc16 when starting joiner

* initialize mCcitt and mAnsi
This commit is contained in:
Buke Po
2017-05-03 18:44:19 -07:00
committed by Jonathan Hui
parent 8d5a701adb
commit 25e8ee9bfa
2 changed files with 13 additions and 8 deletions
+11 -6
View File
@@ -67,8 +67,8 @@ Joiner::Joiner(ThreadNetif &aNetif):
mState(kStateIdle),
mCallback(NULL),
mContext(NULL),
mCcitt(Crc16::kCcitt),
mAnsi(Crc16::kAnsi),
mCcitt(0),
mAnsi(0),
mJoinerRouterChannel(0),
mJoinerRouterPanId(0),
mJoinerUdpPort(0),
@@ -94,6 +94,8 @@ ThreadError Joiner::Start(const char *aPSKd, const char *aProvisioningUrl,
{
ThreadError error;
Mac::ExtAddress extAddress;
Crc16 ccitt(Crc16::kCcitt);
Crc16 ansi(Crc16::kAnsi);
otLogFuncEntry();
@@ -106,10 +108,13 @@ ThreadError Joiner::Start(const char *aPSKd, const char *aProvisioningUrl,
for (size_t i = 0; i < sizeof(extAddress); i++)
{
mCcitt.Update(extAddress.m8[i]);
mAnsi.Update(extAddress.m8[i]);
ccitt.Update(extAddress.m8[i]);
ansi.Update(extAddress.m8[i]);
}
mCcitt = ccitt.Get();
mAnsi = ansi.Get();
error = mNetif.GetSecureCoapClient().GetDtls().SetPsk(reinterpret_cast<const uint8_t *>(aPSKd),
static_cast<uint8_t>(strlen(aPSKd)));
SuccessOrExit(error);
@@ -191,8 +196,8 @@ void Joiner::HandleDiscoverResult(otActiveScanResult *aResult)
memcpy(steeringData.GetValue(), aResult->mSteeringData.m8, steeringData.GetLength());
if (steeringData.DoesAllowAny() ||
(steeringData.GetBit(mCcitt.Get() % steeringData.GetNumBits()) &&
steeringData.GetBit(mAnsi.Get() % steeringData.GetNumBits())))
(steeringData.GetBit(mCcitt % steeringData.GetNumBits()) &&
steeringData.GetBit(mAnsi % steeringData.GetNumBits())))
{
mJoinerUdpPort = aResult->mJoinerUdpPort;
mJoinerRouterPanId = aResult->mPanId;
+2 -2
View File
@@ -142,8 +142,8 @@ private:
otJoinerCallback mCallback;
void *mContext;
Crc16 mCcitt;
Crc16 mAnsi;
uint16_t mCcitt;
uint16_t mAnsi;
uint8_t mJoinerRouterChannel;
uint16_t mJoinerRouterPanId;