|
|
|
@ -1372,12 +1372,18 @@ bool TagP25Data::isPeerPermitted(uint32_t peerId, lc::LC& control, DUID::E duid,
|
|
|
|
connection = m_network->m_peers[peerId];
|
|
|
|
connection = m_network->m_peers[peerId];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// is this peer a replica peer?
|
|
|
|
|
|
|
|
if (connection != nullptr) {
|
|
|
|
if (connection != nullptr) {
|
|
|
|
|
|
|
|
// is this peer a replica peer?
|
|
|
|
if (connection->isReplica()) {
|
|
|
|
if (connection->isReplica()) {
|
|
|
|
return true; // replica peers are *always* allowed to receive traffic and no other rules may filter
|
|
|
|
return true; // replica peers are *always* allowed to receive traffic and no other rules may filter
|
|
|
|
// these peers
|
|
|
|
// these peers
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// is this peer a SysView peer?
|
|
|
|
|
|
|
|
if (connection->peerClass() == PEER_CONN_CLASS_SYSVIEW) {
|
|
|
|
|
|
|
|
return true; // SysView peers are *always* allowed to receive traffic and no other rules may filter
|
|
|
|
|
|
|
|
// these peers
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// always permit a TSDU or PDU
|
|
|
|
// always permit a TSDU or PDU
|
|
|
|
@ -1467,11 +1473,11 @@ bool TagP25Data::isPeerPermitted(uint32_t peerId, lc::LC& control, DUID::E duid,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// is this peer a SysView or console peer?
|
|
|
|
// is this peer a console peer?
|
|
|
|
if (connection != nullptr) {
|
|
|
|
if (connection != nullptr) {
|
|
|
|
if (connection->peerClass() == PEER_CONN_CLASS_SYSVIEW || connection->peerClass() == PEER_CONN_CLASS_CONSOLE) {
|
|
|
|
if (connection->peerClass() == PEER_CONN_CLASS_CONSOLE) {
|
|
|
|
fromUpstream = true; // we'll just set the fromUpstream flag to disable the affiliation check
|
|
|
|
fromUpstream = true; // we'll just set the fromUpstream flag to disable the affiliation check
|
|
|
|
// for SysView or console peers
|
|
|
|
// for console peers
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|