fix issue when loading voice channel lists into local affiliation tables; fix issue where appropriate voice channel data for remote callbacks was not correct; better hide messages from console and use logging appropriately in RESTClient;

pull/24/head 2023-03-26
Bryan Biedenkapp 3 years ago
parent 86748665ba
commit 08d282844d

@ -736,7 +736,8 @@ void Slot::setSiteData(const std::vector<uint32_t> voiceChNo, const std::unorder
m_affiliations->addRFCh(chNo);
}
m_affiliations->setRFChData(voiceChData);
std::unordered_map<uint32_t, ::lookups::VoiceChData> chData = std::unordered_map<uint32_t, ::lookups::VoiceChData>(voiceChData);
m_affiliations->setRFChData(chData);
lc::CSBK::setSiteData(m_siteData);
}

@ -443,7 +443,7 @@ VoiceChData AffiliationLookup::getRFChData(uint32_t chNo) const
data = VoiceChData();
}
return VoiceChData();
return data;
}
/// <summary>

@ -152,7 +152,7 @@ namespace lookups
virtual uint32_t getGrantedSrcId(uint32_t srcId);
/// <summary>Helper to set RF channel data.</summary>
void setRFChData(const std::unordered_map<uint32_t, VoiceChData> chData) { m_rfChDataTable = chData; }
void setRFChData(const std::unordered_map<uint32_t, VoiceChData>& chData) { m_rfChDataTable = chData; }
/// <summary>Helper to get RF channel data.</summary>
VoiceChData getRFChData(uint32_t chNo) const;

@ -272,7 +272,8 @@ void Control::setOptions(yaml::Node& conf, bool controlPermitTG, const std::stri
m_affiliations.addRFCh(ch);
}
m_affiliations.setRFChData(voiceChData);
std::unordered_map<uint32_t, ::lookups::VoiceChData> chData = std::unordered_map<uint32_t, ::lookups::VoiceChData>(voiceChData);
m_affiliations.setRFChData(chData);
lc::RCCH::setSiteData(m_siteData);
lc::RCCH::setCallsign(cwCallsign);

@ -316,7 +316,8 @@ void Control::setOptions(yaml::Node& conf, bool controlPermitTG, const std::stri
m_affiliations.addRFCh(ch);
}
m_affiliations.setRFChData(voiceChData);
std::unordered_map<uint32_t, ::lookups::VoiceChData> chData = std::unordered_map<uint32_t, ::lookups::VoiceChData>(voiceChData);
m_affiliations.setRFChData(chData);
uint32_t ccBcstInterval = p25Protocol["control"]["interval"].as<uint32_t>(300U);
m_trunk->m_adjSiteUpdateInterval += ccBcstInterval;

@ -2237,6 +2237,7 @@ bool Trunk::writeRF_TSDU_Grant(uint32_t srcId, uint32_t dstId, uint8_t serviceOp
// callback RCON to permit-tg on the specified voice channel
if (m_p25->m_authoritative && m_p25->m_controlPermitTG) {
::lookups::VoiceChData voiceChData = m_p25->m_affiliations.getRFChData(chNo);
if (voiceChData.isValidCh() && !voiceChData.address().empty() && voiceChData.port() > 0 &&
chNo != m_p25->m_siteData.channelNo()) {
json::object req = json::object();

@ -63,6 +63,7 @@ using namespace network::rest::http;
bool RESTClient::m_responseAvailable = false;
HTTPPayload RESTClient::m_response;
bool RESTClient::m_console = false;
bool RESTClient::m_debug = false;
// ---------------------------------------------------------------------------
@ -117,6 +118,7 @@ RESTClient::RESTClient(const std::string& address, uint32_t port, const std::str
assert(!address.empty());
assert(port > 0U);
m_console = true;
m_debug = debug;
}
@ -234,7 +236,14 @@ int RESTClient::send(const std::string& address, uint32_t port, const std::strin
return ERRNO_API_CALL_TIMEOUT;
}
fprintf(stdout, "%s\r\n", m_response.content.c_str());
if (m_console) {
fprintf(stdout, "%s\r\n", m_response.content.c_str());
}
else {
if (m_debug) {
::LogDebug(LOG_REST, "REST Response: %s", m_response.content.c_str());
}
}
client.close();
}

@ -64,6 +64,8 @@ private:
uint32_t m_port;
std::string m_password;
static bool m_console;
static bool m_responseAvailable;
static HTTPPayload m_response;

Loading…
Cancel
Save

Powered by TurnKey Linux.