Do not start DTLS session if no Joiner Router is found. (#806)

This commit is contained in:
Jonathan Hui
2016-10-13 12:53:57 -07:00
committed by GitHub
parent 3eff878691
commit 9fdc9a8bfc
+4 -1
View File
@@ -46,6 +46,7 @@
#include <common/crc16.hpp>
#include <common/encoding.hpp>
#include <common/logging.hpp>
#include <mac/mac_frame.hpp>
#include <meshcop/joiner.hpp>
#include <platform/radio.h>
#include <platform/random.h>
@@ -80,6 +81,8 @@ ThreadError Joiner::Start(const char *aPSKd, const char *aProvisioningUrl)
SuccessOrExit(error = mNetif.GetDtls().SetPsk(reinterpret_cast<const uint8_t *>(aPSKd),
static_cast<uint8_t>(strlen(aPSKd))));
SuccessOrExit(error = mNetif.GetDtls().mProvisioningUrl.SetProvisioningUrl(aProvisioningUrl));
mJoinerRouterPanId = Mac::kPanIdBroadcast;
SuccessOrExit(error = mNetif.GetMle().Discover(0, 0, mNetif.GetMac().GetPanId(), HandleDiscoverResult, this));
exit:
@@ -128,7 +131,7 @@ void Joiner::HandleDiscoverResult(otActiveScanResult *aResult)
memcpy(&mJoinerRouter, &aResult->mExtAddress, sizeof(mJoinerRouter));
}
}
else
else if (mJoinerRouterPanId != Mac::kPanIdBroadcast)
{
// open UDP port
Ip6::SockAddr sockaddr;