From 557f15657934317854f469d8106abcf22f60bfdb Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Thu, 26 Oct 2023 18:36:38 +0000 Subject: [PATCH] dns: refactor asSyncRecords() for direct access of the unsorted map Signed-off-by: Alejandro Mery --- pkg/dns/sync.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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))