diff --git a/pkg/zones/machine_rings.go b/pkg/zones/machine_rings.go index eec58a5..2c59fb0 100644 --- a/pkg/zones/machine_rings.go +++ b/pkg/zones/machine_rings.go @@ -60,17 +60,19 @@ func (m *Machine) applyWireguardConfig(ring int, wg *wireguard.Config) error { return nil } -func (m *Machine) applyRingInfo(ring int, new *RingInfo) error { - var cur *RingInfo - +func (m *Machine) getRingInfo(ring int) (*RingInfo, bool) { for _, ri := range m.RingAddresses { if ri.Ring == ring { - cur = ri - break + return ri, true } } - if cur == nil { + return nil, false +} + +func (m *Machine) applyRingInfo(ring int, new *RingInfo) error { + cur, found := m.getRingInfo(ring) + if !found { // first, append m.RingAddresses = append(m.RingAddresses, new) return nil