package store import ( "strings" "time" ) func (m *Memory) GetDomainResolveCache(fqdn string) (*DomainResolveCacheEntry, bool, error) { m.mu.RLock() defer m.mu.RUnlock() if m.domainResolveCache == nil { return nil, false, nil } e, ok := m.domainResolveCache[strings.ToLower(strings.TrimSpace(fqdn))] if !ok || e == nil { return nil, false, nil } return &DomainResolveCacheEntry{ FQDN: e.FQDN, Addrs: append([]string(nil), e.Addrs...), ResolvedAt: e.ResolvedAt, }, true, nil } func (m *Memory) SetDomainResolveCache(fqdn string, addrs []string) error { key := strings.ToLower(strings.TrimSpace(fqdn)) if key == "" { return ErrInvalidInput } m.mu.Lock() defer m.mu.Unlock() if m.domainResolveCache == nil { m.domainResolveCache = make(map[string]*DomainResolveCacheEntry) } m.domainResolveCache[key] = &DomainResolveCacheEntry{ FQDN: key, Addrs: append([]string(nil), addrs...), ResolvedAt: time.Now().UTC(), } return nil }