diff --git a/M17Control.cpp b/M17Control.cpp index fe3f4d0..e0baefb 100644 --- a/M17Control.cpp +++ b/M17Control.cpp @@ -592,7 +592,10 @@ void CM17Control::writeNetwork() m_networkWatchdog.start(); if (!m_allowEncryption) { - unsigned char type = m_netLSF.getEncryptionType(); + CM17LSF lsf; + lsf.setNetwork(netData); + + unsigned char type = lsf.getEncryptionType(); if (type != M17_ENCRYPTION_TYPE_NONE) { m_network->reset(); return; diff --git a/M17LSF.cpp b/M17LSF.cpp index 3034e26..843bae2 100644 --- a/M17LSF.cpp +++ b/M17LSF.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020,2021 by Jonathan Naylor G4KLX + * Copyright (C) 2020,2021,2023 by Jonathan Naylor G4KLX * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,6 +38,8 @@ m_lsf(NULL), m_valid(false) { m_lsf = new unsigned char[M17_LSF_LENGTH_BYTES]; + + ::memset(m_lsf, 0x00U, M17_LSF_LENGTH_BYTES); } CM17LSF::~CM17LSF() diff --git a/M17Network.cpp b/M17Network.cpp index cef7b73..268f069 100644 --- a/M17Network.cpp +++ b/M17Network.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020,2021 by Jonathan Naylor G4KLX + * Copyright (C) 2020,2021,2023 by Jonathan Naylor G4KLX * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -104,7 +104,7 @@ bool CM17Network::write(const unsigned char* data) buffer[53U] = 0x00U; if (m_debug) - CUtils::dump(1U, "M17 data transmitted", buffer, 54U); + CUtils::dump(1U, "M17 Network Transmitted", buffer, 54U); return m_socket.write(buffer, 54U, m_addr, m_addrLen); } @@ -131,7 +131,7 @@ void CM17Network::clock(unsigned int ms) } if (m_debug) - CUtils::dump(1U, "M17 Network Data Received", buffer, length); + CUtils::dump(1U, "M17 Network Received", buffer, length); if (!m_enabled) return; @@ -188,7 +188,9 @@ void CM17Network::reset() void CM17Network::enable(bool enabled) { - if (!enabled && m_enabled) + if (enabled && !m_enabled) + reset(); + else if (!enabled && m_enabled) m_buffer.clear(); m_enabled = enabled; @@ -209,7 +211,7 @@ void CM17Network::sendPing() buffer[3U] = 'G'; if (m_debug) - CUtils::dump(1U, "M17 data transmitted", buffer, 4U); + CUtils::dump(1U, "M17 Network Transmitted", buffer, 4U); m_socket.write(buffer, 4U, m_addr, m_addrLen); } diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index dbd9133..9e50fbc 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -2638,7 +2638,7 @@ void CMMDVMHost::remoteControl() m_nxdnNetwork->enable(true); break; case RCD_ENABLE_M17: - if (m_m17 != NULL && m_m17Enabled == false) + if (m_m17 != NULL && !m_m17Enabled) processEnableCommand(m_m17Enabled, true); if (m_m17Network != NULL) m_m17Network->enable(true); @@ -2682,7 +2682,7 @@ void CMMDVMHost::remoteControl() m_nxdnNetwork->enable(false); break; case RCD_DISABLE_M17: - if (m_m17 != NULL && m_m17Enabled == true) + if (m_m17 != NULL && m_m17Enabled) processEnableCommand(m_m17Enabled, false); if (m_m17Network != NULL) m_m17Network->enable(false); diff --git a/Version.h b/Version.h index 439756d..2d9289c 100644 --- a/Version.h +++ b/Version.h @@ -19,6 +19,6 @@ #if !defined(VERSION_H) #define VERSION_H -const char* VERSION = "20231025"; +const char* VERSION = "20231206"; #endif