fix issue where TGID ACL may never be enabled; check ACLs before issuing a grant from a grant demand;

pull/39/head
Bryan Biedenkapp 3 years ago
parent 962744ab50
commit 9a03d084c9

@ -51,7 +51,7 @@ TalkgroupRulesLookup::TalkgroupRulesLookup(const std::string& filename, uint32_t
m_rulesFile(filename),
m_reloadTime(reloadTime),
m_rules(),
m_acl(false),
m_acl(acl),
m_groupHangTime(5U),
m_sendTalkgroups(false),
m_groupVoice()

@ -1228,6 +1228,16 @@ void Control::processNetwork()
case P25_DUID_TDULC:
// is this an TDU with a grant demand?
if (duid == P25_DUID_TDU && m_control && grantDemand) {
// validate source RID
if (!acl::AccessControl::validateSrcId(srcId)) {
return;
}
// validate the target ID, if the target is a talkgroup
if (!acl::AccessControl::validateTGId(dstId)) {
return;
}
uint8_t serviceOptions = (control.getEmergency() ? 0x80U : 0x00U) + // Emergency Flag
(control.getEncrypted() ? 0x40U : 0x00U) + // Encrypted Flag
(control.getPriority() & 0x07U); // Priority

Loading…
Cancel
Save

Powered by TurnKey Linux.