From ccab09c1916d8bc9fe6012eca3621166020c2660 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Fri, 8 Nov 2024 14:06:26 -0500 Subject: [PATCH] handle peer IDs better, Peer-Link will mangle some peer IDs and we need to check the peerId embedded in the status update instead of using the raw network peer Id; --- src/sysview/NodeStatusWnd.h | 4 +--- src/sysview/network/PeerNetwork.cpp | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/sysview/NodeStatusWnd.h b/src/sysview/NodeStatusWnd.h index 653855c0..8bf42a87 100644 --- a/src/sysview/NodeStatusWnd.h +++ b/src/sysview/NodeStatusWnd.h @@ -465,10 +465,8 @@ public: getNetwork()->unlockPeerStatus(); for (auto entry : peerStatus) { - uint32_t peerId = entry.first; json::object peerObj = entry.second; - if (peerObj["peerId"].is()) - peerId = peerObj["peerId"].get(); + uint32_t peerId = peerObj["peerId"].getDefault(entry.first); auto it = std::find_if(m_nodes.begin(), m_nodes.end(), [&](NodeStatusWidget* wdgt) { if (wdgt->peerId == peerId && wdgt->uniqueId == (int32_t)peerId) diff --git a/src/sysview/network/PeerNetwork.cpp b/src/sysview/network/PeerNetwork.cpp index f3128011..29f73048 100644 --- a/src/sysview/network/PeerNetwork.cpp +++ b/src/sysview/network/PeerNetwork.cpp @@ -111,8 +111,9 @@ void PeerNetwork::userPacketHandler(uint32_t peerId, FrameQueue::OpcodePair opco } json::object obj = v.get(); + uint32_t actualPeerId = obj["peerId"].getDefault(peerId); std::lock_guard lock(m_peerStatusMutex); - peerStatus[peerId] = obj; + peerStatus[actualPeerId] = obj; } break;