|
|
@ -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)) |
|
|
|