1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00

MAINTENANCE: Unknown rtypes should return errors, not a panic (#945)

* Eliminate panics related to unknown rtypes
This commit is contained in:
Tom Limoncelli
2020-11-13 16:32:40 -05:00
committed by GitHub
parent 654bb9cfeb
commit 7db3741bc7
13 changed files with 105 additions and 70 deletions

View File

@@ -93,15 +93,15 @@ func (c *dnsimpleProvider) GetZoneRecords(domain string) (models.Records, error)
case "ALIAS", "URL":
rec.Type = r.Type
if err := rec.SetTarget(r.Content); err != nil {
panic(fmt.Errorf("unparsable record received from dnsimple: %w", err))
return nil, fmt.Errorf("unparsable record received from dnsimple: %w", err)
}
case "DS":
if err := rec.SetTargetDSString(r.Content); err != nil {
panic(fmt.Errorf("unparsable record received from dnsimple: %w", err))
return nil, fmt.Errorf("unparsable record received from dnsimple: %w", err)
}
case "MX":
if err := rec.SetTargetMX(uint16(r.Priority), r.Content); err != nil {
panic(fmt.Errorf("unparsable record received from dnsimple: %w", err))
return nil, fmt.Errorf("unparsable record received from dnsimple: %w", err)
}
case "SRV":
parts := strings.Fields(r.Content)
@@ -109,11 +109,11 @@ func (c *dnsimpleProvider) GetZoneRecords(domain string) (models.Records, error)
r.Content += "."
}
if err := rec.SetTargetSRVPriorityString(uint16(r.Priority), r.Content); err != nil {
panic(fmt.Errorf("unparsable record received from dnsimple: %w", err))
return nil, fmt.Errorf("unparsable record received from dnsimple: %w", err)
}
default:
if err := rec.PopulateFromString(r.Type, r.Content, domain); err != nil {
panic(fmt.Errorf("unparsable record received from dnsimple: %w", err))
return nil, fmt.Errorf("unparsable record received from dnsimple: %w", err)
}
}
cleanedRecords = append(cleanedRecords, rec)