dnscontrol/commands/cmdzonecache.go
2025-06-30 16:16:58 -04:00

32 lines
739 B
Go

package commands
import "github.com/StackExchange/dnscontrol/v4/providers"
// FYI(tlim): This file was originally called zonecache.go. To remove any
// confusion between it and pkg/zonecache, we've renamed it. We've also added
// "cmd" or "Cmd" to various labels too.
// NewCmdZoneCache creates a zoneCache.
func NewCmdZoneCache() *cmdZoneCache {
return &cmdZoneCache{}
}
func (zc *cmdZoneCache) zoneList(name string, lister providers.ZoneLister) (*[]string, error) {
zc.Lock()
defer zc.Unlock()
if zc.cache == nil {
zc.cache = map[string]*[]string{}
}
if v, ok := zc.cache[name]; ok {
return v, nil
}
zones, err := lister.ListZones()
if err != nil {
return nil, err
}
zc.cache[name] = &zones
return &zones, nil
}