From ecc8bfa32ef904bd6ad808a8be66f815e60d56ef Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Sat, 29 Mar 2025 10:02:46 -0400 Subject: [PATCH] fix issue where peer identity was being used instead of peer ID for FNE peer network lists; appropriately log blockTrafficTo configurations at startup; --- configs/fne-config.example.yml | 2 +- src/fne/HostFNE.cpp | 3 ++- src/fne/HostFNE.h | 2 +- src/fne/network/PeerNetwork.cpp | 10 ++++++++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/configs/fne-config.example.yml b/configs/fne-config.example.yml index c4ae6531..0dc843f0 100644 --- a/configs/fne-config.example.yml +++ b/configs/fne-config.example.yml @@ -163,7 +163,7 @@ peers: # Network Peer ID peerId: 9000990 - # List of peer IDs to block sending traffic to from this peer. + # List of peer IDs to block traffic to for this peer. blockTrafficTo: [] # Flag indicating whether or not peer endpoint networking is encrypted. diff --git a/src/fne/HostFNE.cpp b/src/fne/HostFNE.cpp index 0cb3dc8f..d85ca145 100644 --- a/src/fne/HostFNE.cpp +++ b/src/fne/HostFNE.cpp @@ -806,6 +806,7 @@ bool HostFNE::createPeerNetworks() for (size_t i = 0; i < blockTrafficTo.size(); i++) { uint32_t peerId = (uint32_t)::strtoul(blockTrafficTo[i].as("0").c_str(), NULL, 10); if (peerId != 0U) { + ::LogInfoEx(LOG_HOST, "Peer ID %u Blocks Traffic To PEER %u", id, peerId); network->addBlockedTrafficPeer(peerId); } } @@ -822,7 +823,7 @@ bool HostFNE::createPeerNetworks() } if (network != nullptr) - m_peerNetworks[identity] = network; + m_peerNetworks[id] = network; } } diff --git a/src/fne/HostFNE.h b/src/fne/HostFNE.h index 8cd60bd9..727e05ca 100644 --- a/src/fne/HostFNE.h +++ b/src/fne/HostFNE.h @@ -107,7 +107,7 @@ private: CryptoContainer* m_cryptoLookup; - std::unordered_map m_peerNetworks; + std::unordered_map m_peerNetworks; uint32_t m_pingTime; uint32_t m_maxMissedPings; diff --git a/src/fne/network/PeerNetwork.cpp b/src/fne/network/PeerNetwork.cpp index c1f812e9..b6a53d25 100644 --- a/src/fne/network/PeerNetwork.cpp +++ b/src/fne/network/PeerNetwork.cpp @@ -10,6 +10,7 @@ #include "fne/Defines.h" #include "common/network/json/json.h" #include "common/zlib/zlib.h" +#include "common/Log.h" #include "common/Utils.h" #include "fne/network/PeerNetwork.h" @@ -77,13 +78,22 @@ uint32_t PeerNetwork::getRxDMRStreamId(uint32_t slotNo) const bool PeerNetwork::checkBlockedPeer(uint32_t peerId) { + if (!m_enabled) + return false; + if (m_blockTrafficToTable.empty()) return false; if (std::find(m_blockTrafficToTable.begin(), m_blockTrafficToTable.end(), peerId) != m_blockTrafficToTable.end()) { + if (m_debug) { + ::LogDebugEx(LOG_HOST, "PeerNetwork::checkBlockedPeer()", "PEER %u peerId = %u, blocking traffic", m_peerId, peerId); + } return true; } + if (m_debug) { + ::LogDebugEx(LOG_HOST, "PeerNetwork::checkBlockedPeer()", "PEER %u peerId = %u, passing traffic", m_peerId, peerId); + } return false; }