From d05a593b368e62bd530347b3b0649db1bd720cf9 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Mon, 2 Mar 2026 17:52:27 -0500 Subject: [PATCH] BUGFIX: when bridge is receiving local or UDP audio, ignore all FNE network traffic in its entirety (this has the affect of making local audio and UDP audio priority over FNE audio); --- src/bridge/HostBridge.Analog.cpp | 5 +++++ src/bridge/HostBridge.DMR.cpp | 5 +++++ src/bridge/HostBridge.P25.cpp | 10 +++++----- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/bridge/HostBridge.Analog.cpp b/src/bridge/HostBridge.Analog.cpp index 24aefb09..9c9b67a7 100644 --- a/src/bridge/HostBridge.Analog.cpp +++ b/src/bridge/HostBridge.Analog.cpp @@ -74,6 +74,11 @@ void HostBridge::processAnalogNetwork(uint8_t* buffer, uint32_t length) LogDebug(LOG_NET, "Analog, seqNo = %u, srcId = %u, dstId = %u, len = %u", seqNo, srcId, dstId, length); } + // ignore network traffic entirely when local audio detect or + // traffic from UDP is running + if (m_audioDetect || m_trafficFromUDP) + return; + if (!individual) { if (srcId == 0) return; diff --git a/src/bridge/HostBridge.DMR.cpp b/src/bridge/HostBridge.DMR.cpp index 7b946f91..910bfeda 100644 --- a/src/bridge/HostBridge.DMR.cpp +++ b/src/bridge/HostBridge.DMR.cpp @@ -122,6 +122,11 @@ void HostBridge::processDMRNetwork(uint8_t* buffer, uint32_t length) ::memcpy(data.get(), buffer + 20U, DMR_FRAME_LENGTH_BYTES); } + // ignore network traffic entirely when local audio detect or + // traffic from UDP is running + if (m_audioDetect || m_trafficFromUDP) + return; + if (flco == FLCO::GROUP) { if (srcId == 0) { m_network->resetDMR(slotNo); diff --git a/src/bridge/HostBridge.P25.cpp b/src/bridge/HostBridge.P25.cpp index 1f21e952..93c5d083 100644 --- a/src/bridge/HostBridge.P25.cpp +++ b/src/bridge/HostBridge.P25.cpp @@ -124,13 +124,13 @@ void HostBridge::processP25Network(uint8_t* buffer, uint32_t length) lsd.setLSD1(lsd1); lsd.setLSD2(lsd2); + // ignore network traffic entirely when local audio detect or + // traffic from UDP is running + if (m_audioDetect || m_trafficFromUDP) + return; + if (control.getLCO() == LCO::GROUP) { if ((duid == DUID::TDU) || (duid == DUID::TDULC)) { - // ignore TDU/TDULC entirely when local audio detect or - // traffic from UDP is running - if (m_audioDetect || m_trafficFromUDP) - return; - // ignore TDU's that are grant demands if (grantDemand) { m_network->resetP25();