From 87b347ba02f4d0efa310002ab4893e0f1684661c Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Thu, 8 Oct 2026 19:44:37 -0400 Subject: [PATCH] send complete KMM key request and response frames, use fullLength() when transmitting KMM Modify Key messages because length() excludes the three-byte message ID and length prefix; --- src/common/network/BaseNetwork.cpp | 8 ++++---- src/fne/network/TrafficNetwork.cpp | 4 ++-- src/fne/network/packet/KeyRequest.cpp | 2 +- src/fne/network/packet/LLAKeyRequest.cpp | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/common/network/BaseNetwork.cpp b/src/common/network/BaseNetwork.cpp index 67042823..1e3b403c 100644 --- a/src/common/network/BaseNetwork.cpp +++ b/src/common/network/BaseNetwork.cpp @@ -149,9 +149,9 @@ bool BaseNetwork::writeKeyReq(const uint16_t kId, const uint8_t algId, const uin modifyKeyCmd.encode(buffer + 11U); - //Utils::dump("BaseNetwork::writeKeyReq(), KMM Buffer", buffer, modifyKeyCmd.length() + 11U); + //Utils::dump("BaseNetwork::writeKeyReq(), KMM Buffer", buffer, modifyKeyCmd.fullLength() + 11U); - return writeMaster({ NET_FUNC::KEY_REQ, NET_SUBFUNC::NOP }, buffer, modifyKeyCmd.length() + 11U, RTP_END_OF_CALL_SEQ, 0U); + return writeMaster({ NET_FUNC::KEY_REQ, NET_SUBFUNC::NOP }, buffer, modifyKeyCmd.fullLength() + 11U, RTP_END_OF_CALL_SEQ, 0U); } /* Writes LLA enc. key request to the network. */ @@ -181,9 +181,9 @@ bool BaseNetwork::writeLLAKeyReq(const uint32_t srcId) modifyKeyCmd.encode(buffer + 11U); - //Utils::dump("BaseNetwork::writeLLAKeyReq(), KMM Buffer", buffer, modifyKeyCmd.length() + 11U); + //Utils::dump("BaseNetwork::writeLLAKeyReq(), KMM Buffer", buffer, modifyKeyCmd.fullLength() + 11U); - return writeMaster({ NET_FUNC::KEY_LLA_REQ, NET_SUBFUNC::NOP }, buffer, modifyKeyCmd.length() + 11U, RTP_END_OF_CALL_SEQ, 0U); + return writeMaster({ NET_FUNC::KEY_LLA_REQ, NET_SUBFUNC::NOP }, buffer, modifyKeyCmd.fullLength() + 11U, RTP_END_OF_CALL_SEQ, 0U); } /* Writes the local activity log to the network. */ diff --git a/src/fne/network/TrafficNetwork.cpp b/src/fne/network/TrafficNetwork.cpp index 4127c4b2..528c9ab5 100644 --- a/src/fne/network/TrafficNetwork.cpp +++ b/src/fne/network/TrafficNetwork.cpp @@ -3019,7 +3019,7 @@ void TrafficNetwork::processTEKResponse(p25::kmm::KeyItem* rspKi, uint8_t algId, modifyKeyRsp.encode(buffer + 11U); - writePeer(peerId, m_peerId, { NET_FUNC::KEY_RSP, NET_SUBFUNC::NOP }, buffer, modifyKeyRsp.length() + 11U, + writePeer(peerId, m_peerId, { NET_FUNC::KEY_RSP, NET_SUBFUNC::NOP }, buffer, modifyKeyRsp.fullLength() + 11U, RTP_END_OF_CALL_SEQ, createStreamId()); peersToRemove.push_back(peerId); @@ -3089,7 +3089,7 @@ void TrafficNetwork::processLLAResponse(uint32_t srcId, p25::kmm::KeyItem* rspKi modifyKeyRsp.encode(buffer + 11U); - writePeer(peerId, m_peerId, { NET_FUNC::KEY_LLA_RSP, NET_SUBFUNC::NOP }, buffer, modifyKeyRsp.length() + 11U, + writePeer(peerId, m_peerId, { NET_FUNC::KEY_LLA_RSP, NET_SUBFUNC::NOP }, buffer, modifyKeyRsp.fullLength() + 11U, RTP_END_OF_CALL_SEQ, createStreamId()); peersToRemove.push_back(peerId); diff --git a/src/fne/network/packet/KeyRequest.cpp b/src/fne/network/packet/KeyRequest.cpp index 62ee1155..d29b884d 100644 --- a/src/fne/network/packet/KeyRequest.cpp +++ b/src/fne/network/packet/KeyRequest.cpp @@ -159,7 +159,7 @@ void TrafficNetwork::PacketHandler::keyRequest(TrafficNetwork* network, NetPacke modifyKeyRsp.encode(buffer + 11U); - network->writePeer(peerId, network->m_peerId, { NET_FUNC::KEY_RSP, NET_SUBFUNC::NOP }, buffer, modifyKeyRsp.length() + 11U, + network->writePeer(peerId, network->m_peerId, { NET_FUNC::KEY_RSP, NET_SUBFUNC::NOP }, buffer, modifyKeyRsp.fullLength() + 11U, RTP_END_OF_CALL_SEQ, network->createStreamId()); } else { // attempt to forward KMM key request to replica masters diff --git a/src/fne/network/packet/LLAKeyRequest.cpp b/src/fne/network/packet/LLAKeyRequest.cpp index 3cdd63bb..595da6a3 100644 --- a/src/fne/network/packet/LLAKeyRequest.cpp +++ b/src/fne/network/packet/LLAKeyRequest.cpp @@ -130,7 +130,7 @@ void TrafficNetwork::PacketHandler::llaKeyRequest(TrafficNetwork* network, NetPa modifyKeyRsp.encode(buffer + 11U); - network->writePeer(peerId, network->m_peerId, { NET_FUNC::KEY_LLA_RSP, NET_SUBFUNC::NOP }, buffer, modifyKeyRsp.length() + 11U, + network->writePeer(peerId, network->m_peerId, { NET_FUNC::KEY_LLA_RSP, NET_SUBFUNC::NOP }, buffer, modifyKeyRsp.fullLength() + 11U, RTP_END_OF_CALL_SEQ, network->createStreamId()); } else { // attempt to forward KMM key request to replica masters