Drop the shallow copies of nodes and peers

Now that updateNATEndpoints was updated to discoverNATEndpoints and that
the endpoints are overridden by topology instead of mutating the nodes and
peers object, we can safely drop this copy.
This commit is contained in:
Julien Viard de Galbert 2021-04-21 10:42:27 +02:00
parent 4fadaeefff
commit 82fcdab705

View File

@ -432,9 +432,8 @@ func (m *Mesh) applyTopology() {
if !m.nodes[k].Ready() { if !m.nodes[k].Ready() {
continue continue
} }
// Make a shallow copy of the node. // Make it point to the node without copy.
node := *m.nodes[k] nodes[k] = m.nodes[k]
nodes[k] = &node
readyNodes++ readyNodes++
} }
// Ensure only ready nodes are considered. // Ensure only ready nodes are considered.
@ -444,9 +443,8 @@ func (m *Mesh) applyTopology() {
if !m.peers[k].Ready() { if !m.peers[k].Ready() {
continue continue
} }
// Make a shallow copy of the peer. // Make it point the peer without copy.
peer := *m.peers[k] peers[k] = m.peers[k]
peers[k] = &peer
readyPeers++ readyPeers++
} }
m.nodesGuage.Set(readyNodes) m.nodesGuage.Set(readyNodes)
@ -472,7 +470,6 @@ func (m *Mesh) applyTopology() {
oldConf := wireguard.Parse(oldConfRaw) oldConf := wireguard.Parse(oldConfRaw)
natEndpoints := discoverNATEndpoints(nodes, peers, oldConf, m.logger) natEndpoints := discoverNATEndpoints(nodes, peers, oldConf, m.logger)
nodes[m.hostname].DiscoveredEndpoints = natEndpoints nodes[m.hostname].DiscoveredEndpoints = natEndpoints
m.nodes[m.hostname].DiscoveredEndpoints = natEndpoints
t, err := NewTopology(nodes, peers, m.granularity, m.hostname, nodes[m.hostname].Endpoint.Port, m.priv, m.subnet, nodes[m.hostname].PersistentKeepalive) t, err := NewTopology(nodes, peers, m.granularity, m.hostname, nodes[m.hostname].Endpoint.Port, m.priv, m.subnet, nodes[m.hostname].PersistentKeepalive)
if err != nil { if err != nil {
level.Error(m.logger).Log("error", err) level.Error(m.logger).Log("error", err)