From 6dad7186c4b5079c7cc70980ff5b0ce0981b1de6 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Thu, 4 Jul 2024 00:26:30 -0400 Subject: [PATCH] don't make *all* AMBT's goto the immediate queue, only do this for AUTH_DMD; --- src/host/p25/packet/ControlSignaling.cpp | 6 +++--- src/host/p25/packet/ControlSignaling.h | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/host/p25/packet/ControlSignaling.cpp b/src/host/p25/packet/ControlSignaling.cpp index 8e2c3b39..56c5a1f7 100644 --- a/src/host/p25/packet/ControlSignaling.cpp +++ b/src/host/p25/packet/ControlSignaling.cpp @@ -1581,7 +1581,7 @@ void ControlSignaling::writeRF_TSDU_MBF(lc::TSBK* tsbk) /* Helper to write a alternate multi-block trunking PDU packet. */ -void ControlSignaling::writeRF_TSDU_AMBT(lc::AMBT* ambt) +void ControlSignaling::writeRF_TSDU_AMBT(lc::AMBT* ambt, bool imm) { if (!m_p25->m_enableControl) return; @@ -1608,7 +1608,7 @@ void ControlSignaling::writeRF_TSDU_AMBT(lc::AMBT* ambt) Utils::dump(1U, "!!! *PDU (AMBT) TSBK Block Data", pduUserData, P25_PDU_UNCONFIRMED_LENGTH_BYTES * header.getBlocksToFollow()); } - m_p25->m_data->writeRF_PDU_User(header, header, false, pduUserData, true); + m_p25->m_data->writeRF_PDU_User(header, header, false, pduUserData, imm); } /* @@ -2812,7 +2812,7 @@ void ControlSignaling::writeRF_TSDU_Auth_Dmd(uint32_t srcId) LogMessage(LOG_RF, P25_TSDU_STR ", %s, srcId = %u, RC = %X", osp->toString().c_str(), srcId, challenge); } - writeRF_TSDU_AMBT(osp.get()); + writeRF_TSDU_AMBT(osp.get(), true); } /* Helper to write a call termination packet. */ diff --git a/src/host/p25/packet/ControlSignaling.h b/src/host/p25/packet/ControlSignaling.h index f160dd8c..056f0d54 100644 --- a/src/host/p25/packet/ControlSignaling.h +++ b/src/host/p25/packet/ControlSignaling.h @@ -281,8 +281,9 @@ namespace p25 /** * @brief Helper to write a alternate multi-block PDU packet. * @param tsbk AMBT to write to the modem. + * @param imm Flag indicating the AMBT should be written to the immediate queue. */ - void writeRF_TSDU_AMBT(lc::AMBT* ambt); + void writeRF_TSDU_AMBT(lc::AMBT* ambt, bool imm = false); /* ** Control Signalling Logic