diff --git a/DStarControl.cpp b/DStarControl.cpp index aff53eb..977d7b8 100644 --- a/DStarControl.cpp +++ b/DStarControl.cpp @@ -127,10 +127,15 @@ bool CDStarControl::writeModem(unsigned char *data) CDStarHeader header(data + 1U); // Is this a transmission destined for a repeater? - if (!header.isRepeater()) { - LogMessage("D-Star, non repeater RF header received"); + if (!header.isRepeater()) + return false; + + unsigned char callsign[DSTAR_LONG_CALLSIGN_LENGTH]; + header.getRPTCall1(callsign); + + // Is it for us? + if (::memcmp(callsign, m_callsign, DSTAR_LONG_CALLSIGN_LENGTH) != 0) return false; - } unsigned char my1[DSTAR_LONG_CALLSIGN_LENGTH]; header.getMyCall1(my1); @@ -145,15 +150,6 @@ bool CDStarControl::writeModem(unsigned char *data) return false; } - unsigned char callsign[DSTAR_LONG_CALLSIGN_LENGTH]; - header.getRPTCall1(callsign); - - // Is it for us? - if (::memcmp(callsign, m_callsign, DSTAR_LONG_CALLSIGN_LENGTH) != 0) { - LogMessage("D-Star, received RF header for wrong repeater - %8.8s", callsign); - return false; - } - unsigned char gateway[DSTAR_LONG_CALLSIGN_LENGTH]; header.getRPTCall2(gateway); @@ -270,7 +266,15 @@ bool CDStarControl::writeModem(unsigned char *data) // Is this a transmission destined for a repeater? if (!header->isRepeater()) { - LogMessage("D-Star, non repeater RF header received"); + delete header; + return false; + } + + unsigned char callsign[DSTAR_LONG_CALLSIGN_LENGTH]; + header->getRPTCall1(callsign); + + // Is it for us? + if (::memcmp(callsign, m_callsign, DSTAR_LONG_CALLSIGN_LENGTH) != 0) { delete header; return false; } @@ -290,16 +294,6 @@ bool CDStarControl::writeModem(unsigned char *data) return false; } - unsigned char callsign[DSTAR_LONG_CALLSIGN_LENGTH]; - header->getRPTCall1(callsign); - - // Is it for us? - if (::memcmp(callsign, m_callsign, DSTAR_LONG_CALLSIGN_LENGTH) != 0) { - LogMessage("D-Star, received RF header for wrong repeater - %8.8s", callsign); - delete header; - return false; - } - unsigned char gateway[DSTAR_LONG_CALLSIGN_LENGTH]; header->getRPTCall2(gateway);