diff --git a/pkg/dns/sync.go b/pkg/dns/sync.go index 712022c..57c6d83 100644 --- a/pkg/dns/sync.go +++ b/pkg/dns/sync.go @@ -54,7 +54,7 @@ func (mgr *Manager) GetSyncRecords(ctx context.Context) ([]SyncAddrRecord, error return nil, err } - return mgr.filteredSyncRecords(recs) + return mgr.asSyncRecords(recs) } // AsSyncAddr converts a A or AAAA [libdns.Record] into a [SyncAddr] @@ -89,9 +89,9 @@ func (mgr *Manager) AsSyncAddr(rr libdns.Record) (SyncAddr, bool, error) { return out, true, nil } -func (mgr *Manager) filteredSyncRecords(recs []libdns.Record) ([]SyncAddrRecord, error) { +func (mgr *Manager) asSyncRecordsMap(recs []libdns.Record) map[string][]SyncAddr { // filter and convert - cache := make(map[string][]SyncAddr) + out := make(map[string][]SyncAddr) for _, rr := range recs { addr, ok, err := mgr.AsSyncAddr(rr) switch { @@ -106,9 +106,14 @@ func (mgr *Manager) filteredSyncRecords(recs []libdns.Record) ([]SyncAddrRecord, Print() case ok: // store - cache[rr.Name] = append(cache[rr.Name], addr) + out[rr.Name] = append(out[rr.Name], addr) } } + return out +} + +func (mgr *Manager) asSyncRecords(recs []libdns.Record) ([]SyncAddrRecord, error) { + cache := mgr.asSyncRecordsMap(recs) // prepare records out := make([]SyncAddrRecord, len(cache))