[conference bridge FNE] don't bother sending TGs to peers that are excluded;

pull/32/head
Bryan Biedenkapp 3 years ago
parent 79562af995
commit 85b72d46b7

@ -771,6 +771,25 @@ void FNENetwork::writeTGIDs(uint32_t peerId, bool queueOnly)
std::vector<std::pair<uint32_t, uint8_t>> tgidList;
auto groupVoice = m_tidLookup->groupVoice();
for (auto entry : groupVoice) {
std::vector<uint32_t> inclusion = entry.config().inclusion();
std::vector<uint32_t> exclusion = entry.config().exclusion();
// peer inclusion lists take priority over exclusion lists
if (inclusion.size() > 0) {
auto it = std::find(inclusion.begin(), inclusion.end(), peerId);
if (it == inclusion.end()) {
continue;
}
}
else {
if (exclusion.size() > 0) {
auto it = std::find(exclusion.begin(), exclusion.end(), peerId);
if (it != inclusion.end()) {
continue;
}
}
}
if (entry.config().active()) {
tgidList.push_back({ entry.source().tgId(), entry.source().tgSlot() });
}
@ -820,6 +839,25 @@ void FNENetwork::writeDeactiveTGIDs(uint32_t peerId, bool queueOnly)
std::vector<std::pair<uint32_t, uint8_t>> tgidList;
auto groupVoice = m_tidLookup->groupVoice();
for (auto entry : groupVoice) {
std::vector<uint32_t> inclusion = entry.config().inclusion();
std::vector<uint32_t> exclusion = entry.config().exclusion();
// peer inclusion lists take priority over exclusion lists
if (inclusion.size() > 0) {
auto it = std::find(inclusion.begin(), inclusion.end(), peerId);
if (it == inclusion.end()) {
continue;
}
}
else {
if (exclusion.size() > 0) {
auto it = std::find(exclusion.begin(), exclusion.end(), peerId);
if (it != inclusion.end()) {
continue;
}
}
}
if (!entry.config().active()) {
tgidList.push_back({ entry.source().tgId(), entry.source().tgSlot() });
}

Loading…
Cancel
Save

Powered by TurnKey Linux.