From 59b8b5d6234a71a4e01146ac56e56dd91d476e4e Mon Sep 17 00:00:00 2001 From: Tim Stewart Date: Fri, 27 Nov 2020 17:13:57 -0500 Subject: [PATCH] Revert "Remove redundant code." This reverts commit f88c9826a734e5d5c60140c20197078f7d9eb2e5. --- DStarControl.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/DStarControl.cpp b/DStarControl.cpp index 6c5b6cf..add4b24 100644 --- a/DStarControl.cpp +++ b/DStarControl.cpp @@ -359,7 +359,8 @@ bool CDStarControl::writeModem(unsigned char *data, unsigned int len) // Check for the fast data signature if (m_rfState == RS_RF_AUDIO && (m_rfN % 2U) == 1U) { unsigned char slowDataType = (data[DSTAR_VOICE_FRAME_LENGTH_BYTES + 1U] ^ DSTAR_SCRAMBLER_BYTES[0U]) & DSTAR_SLOW_DATA_TYPE_MASK; - if (slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA1 || slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA2) { + unsigned char guard = data[4U + 1U] ^ DSTAR_SCRAMBLER_BYTES[4U]; + if ((slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA1 || slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA2) /* && guard == DSTAR_FAST_DATA_GUARD_BYTE */) { LogMessage("D-Star, switching to fast data mode"); m_rfState = RS_RF_DATA; } @@ -735,7 +736,8 @@ void CDStarControl::writeNetwork() // Check for the fast data signature if (m_netState == RS_NET_AUDIO && (n % 2U) == 1U) { unsigned char slowDataType = (data[DSTAR_VOICE_FRAME_LENGTH_BYTES + 2U] ^ DSTAR_SCRAMBLER_BYTES[0U]) & DSTAR_SLOW_DATA_TYPE_MASK; - if (slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA1 || slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA2) { + unsigned char guard = data[4U + 2U] ^ DSTAR_SCRAMBLER_BYTES[4U]; + if ((slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA1 || slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA2) /* && guard == DSTAR_FAST_DATA_GUARD_BYTE */) { LogMessage("D-Star, switching to fast data mode"); m_netState = RS_NET_DATA; }