Browse Source

dns: refactor asSyncRecords()

for direct access of the unsorted map

Signed-off-by: Alejandro Mery <amery@jpi.io>
pull/29/head
Alejandro Mery 1 year ago
parent
commit
557f156579
  1. 13
      pkg/dns/sync.go

13
pkg/dns/sync.go

@ -54,7 +54,7 @@ func (mgr *Manager) GetSyncRecords(ctx context.Context) ([]SyncAddrRecord, error
return nil, err return nil, err
} }
return mgr.filteredSyncRecords(recs) return mgr.asSyncRecords(recs)
} }
// AsSyncAddr converts a A or AAAA [libdns.Record] into a [SyncAddr] // 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 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 // filter and convert
cache := make(map[string][]SyncAddr) out := make(map[string][]SyncAddr)
for _, rr := range recs { for _, rr := range recs {
addr, ok, err := mgr.AsSyncAddr(rr) addr, ok, err := mgr.AsSyncAddr(rr)
switch { switch {
@ -106,9 +106,14 @@ func (mgr *Manager) filteredSyncRecords(recs []libdns.Record) ([]SyncAddrRecord,
Print() Print()
case ok: case ok:
// store // 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 // prepare records
out := make([]SyncAddrRecord, len(cache)) out := make([]SyncAddrRecord, len(cache))

Loading…
Cancel
Save