diff --git a/pkg/mesh/mesh.go b/pkg/mesh/mesh.go index b64bcd1..9add840 100644 --- a/pkg/mesh/mesh.go +++ b/pkg/mesh/mesh.go @@ -355,7 +355,6 @@ func (m *Mesh) Run() error { if m.cni { m.updateCNIConfig() } - m.syncEndpoints() m.applyTopology() t.Reset(resyncPeriod) case <-m.stop: @@ -364,47 +363,6 @@ func (m *Mesh) Run() error { } } -// WireGuard updates the endpoints of peers to match the -// last place a valid packet was received from. -// Periodically we need to syncronize the endpoints -// of peers in the backend to match the WireGuard configuration. -func (m *Mesh) syncEndpoints() { - link, err := linkByIndex(m.kiloIface) - if err != nil { - level.Error(m.logger).Log("error", err) - m.errorCounter.WithLabelValues("endpoints").Inc() - return - } - conf, err := wireguard.ShowConf(link.Attrs().Name) - if err != nil { - level.Error(m.logger).Log("error", err) - m.errorCounter.WithLabelValues("endpoints").Inc() - return - } - m.mu.Lock() - defer m.mu.Unlock() - c := wireguard.Parse(conf) - var key string - var tmp *Peer - for i := range c.Peers { - // Peers are indexed by public key. - key = string(c.Peers[i].PublicKey) - if p, ok := m.peers[key]; ok { - tmp = &Peer{ - Name: p.Name, - Peer: *c.Peers[i], - } - if !peersAreEqual(tmp, p) { - p.Endpoint = tmp.Endpoint - if err := m.Peers().Set(p.Name, p); err != nil { - level.Error(m.logger).Log("error", err) - m.errorCounter.WithLabelValues("endpoints").Inc() - } - } - } - } -} - func (m *Mesh) syncNodes(e *NodeEvent) { logger := log.With(m.logger, "event", e.Type) level.Debug(logger).Log("msg", "syncing nodes", "event", e.Type)