|
|
|
@ -225,17 +225,28 @@ func (r *Ring) setRingZeroAllowedIPs(rp *RingPeer) {
|
|
|
|
|
rp.AllowCIDR(rp.Address, 32) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// revive:disable:cognitive-complexity
|
|
|
|
|
func (r *Ring) setRingOneGatewayAllowedIPs(rp *RingPeer) { |
|
|
|
|
// revive:enable:cognitive-complexity
|
|
|
|
|
regionID, zoneID, _, _ := r.Decode(rp.Address) |
|
|
|
|
|
|
|
|
|
// peer
|
|
|
|
|
rp.AllowCIDR(rp.Address, 32) |
|
|
|
|
|
|
|
|
|
// ring1 gateways connect to all other ring1 networks
|
|
|
|
|
r.ForEachZone(func(z *Zone) bool { |
|
|
|
|
if !z.Is(regionID, zoneID) { |
|
|
|
|
subnet := z.RingOnePrefix() |
|
|
|
|
rp.AllowSubnet(subnet) |
|
|
|
|
m, ok := r.ZoneIterator.(RegionIterator) |
|
|
|
|
if !ok { |
|
|
|
|
panic("Cannot iterate Region from Zone") |
|
|
|
|
} |
|
|
|
|
m.ForEachRegion(func(r2 *Region) bool { |
|
|
|
|
if r2.IsPrimary() { |
|
|
|
|
r.ForEachZone(func(z *Zone) bool { |
|
|
|
|
if !z.Is(regionID, zoneID) { |
|
|
|
|
subnet := z.RingOnePrefix() |
|
|
|
|
rp.AllowSubnet(subnet) |
|
|
|
|
} |
|
|
|
|
return false |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
return false |
|
|
|
|
}) |
|
|
|
|