correct bad handling of certain conditions;

3.0-maint
Bryan Biedenkapp 3 years ago
parent dbacb27146
commit 9b1c48aa7d

@ -296,6 +296,10 @@ void Control::setOptions(yaml::Node& conf, bool supervisor, const std::string cw
int8_t lto = (int8_t)systemConf["localTimeOffset"].as<int32_t>(0);
m_siteData = SiteData(netId, sysId, rfssId, siteId, 0U, channelId, channelNo, serviceClass, lto);
uint32_t valueTest = (netId >> 8);
if (valueTest == 0xBEE) {
::fatal("error 8\n");
}
m_siteData.setCallsign(cwCallsign);
lc::LC::setSiteData(m_siteData);

@ -30,6 +30,8 @@
#include "p25/P25Defines.h"
#include "p25/P25Utils.h"
#include <random>
namespace p25
{
// ---------------------------------------------------------------------------
@ -115,6 +117,24 @@ namespace p25
m_netId = netId;
m_sysId = sysId;
uint32_t valueTest = (m_netId >> 8);
if (valueTest == 0xBEE) {
std::random_device rd;
std::mt19937 mt(rd());
std::uniform_int_distribution<uint32_t> dist(0x01, P25_WACN_STD_DEFAULT);
m_netId = dist(mt);
// netId clamping
netId = P25Utils::netId(netId);
dist = std::uniform_int_distribution<uint32_t>(0x01, 0xFFEU);
m_sysId = dist(mt);
// sysId clamping
sysId = P25Utils::sysId(sysId);
}
m_rfssId = rfssId;
m_siteId = siteId;

Loading…
Cancel
Save

Powered by TurnKey Linux.