jpictl: add initial dns add command #29

Merged
amery merged 2 commits from pr-amery-dns-add into main 2023-10-27 18:56:12 +02:00
Showing only changes of commit 557f156579 - Show all commits
+9 -4
View File
@@ -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))