From bdd09d8aa9df40ff36d1ec97b45725dff182971d Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Tue, 2 Aug 2016 11:08:24 +0000 Subject: [PATCH] Restore copying nodes when obtaining connection summaries --- render/detailed/connections.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/render/detailed/connections.go b/render/detailed/connections.go index 576690013..0a4decfae 100644 --- a/render/detailed/connections.go +++ b/render/detailed/connections.go @@ -75,6 +75,9 @@ func incomingConnectionsSummary(topologyID string, r report.Report, n report.Nod if !node.Adjacency.Contains(n.ID) { continue } + // Shallow-copy the node to obtain a different pointer + // on the remote side + remoteNode := node // Work out what port they are talking to, and count the number of // connections to that port. @@ -90,7 +93,7 @@ func incomingConnectionsSummary(topologyID string, r report.Report, n report.Nod } key := connection{ localNode: &n, - remoteNode: &node, + remoteNode: &remoteNode, port: port, } if isInternetNode(n) { @@ -126,8 +129,13 @@ func outgoingConnectionsSummary(topologyID string, r report.Report, n report.Nod if !ok { continue } + remoteEndpointIDs := endpointChildIDsOf(node) + // Shallow-copy the node to obtain a different pointer + // on the remote side + remoteNode := node + for _, localEndpoint := range localEndpoints { _, localAddr, _, ok := report.ParseEndpointNodeID(localEndpoint.ID) if !ok { @@ -141,7 +149,7 @@ func outgoingConnectionsSummary(topologyID string, r report.Report, n report.Nod } key := connection{ localNode: &n, - remoteNode: &node, + remoteNode: &remoteNode, port: port, } if isInternetNode(n) {