From f5bfcd0d6e12e26e338c82f6887beeb13b3ec65f Mon Sep 17 00:00:00 2001 From: Daniel Schmitz Date: Wed, 29 Nov 2017 20:57:35 +0800 Subject: [PATCH] NS1: Add SRV record support (#277) * NS1 SRV record support * Updated feature matrix --- build/generate/featureMatrix.go | 2 +- docs/_includes/matrix.html | 6 ++++-- providers/ns1/ns1provider.go | 6 ++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/build/generate/featureMatrix.go b/build/generate/featureMatrix.go index 060292142c..41b3151499 100644 --- a/build/generate/featureMatrix.go +++ b/build/generate/featureMatrix.go @@ -115,7 +115,7 @@ var tmpl = template.Must(template.New("").Funcs(template.FuncMap{ "safe": func(s string) template.HTML { return template.HTML(s) }, }).Parse(` {% comment %} - Matrix generated by build/generate/featureMatrix.go. DO NOT HAND EDIT! + Matrix generated by build/generate/featureMatrix.go. DO NOT HAND EDIT! {% endcomment %}{{$providers := .Providers}} diff --git a/docs/_includes/matrix.html b/docs/_includes/matrix.html index 5f1c617ff9..232cac93f4 100644 --- a/docs/_includes/matrix.html +++ b/docs/_includes/matrix.html @@ -1,6 +1,6 @@ {% comment %} - Matrix generated by build/generate/featureMatrix.go. DO NOT HAND EDIT! + Matrix generated by build/generate/featureMatrix.go. DO NOT HAND EDIT! {% endcomment %}
@@ -232,7 +232,9 @@ - + diff --git a/providers/ns1/ns1provider.go b/providers/ns1/ns1provider.go index 346179913d..884cefc1ff 100644 --- a/providers/ns1/ns1provider.go +++ b/providers/ns1/ns1provider.go @@ -25,7 +25,7 @@ var docNotes = providers.DocumentationNotes{ } func init() { - providers.RegisterDomainServiceProviderType("NS1", newProvider, docNotes) + providers.RegisterDomainServiceProviderType("NS1", newProvider, providers.CanUseSRV, docNotes) } type nsone struct { @@ -128,6 +128,8 @@ func buildRecord(recs models.Records, domain string, id string) *dns.Record { for _, r := range recs { if r.Type == "TXT" { rec.AddAnswer(&dns.Answer{Rdata: []string{r.Target}}) + } else if r.Type == "SRV" { + rec.AddAnswer(&dns.Answer{Rdata: strings.Split(fmt.Sprintf("%d %d %d %v", r.SrvPriority, r.SrvWeight, r.SrvPort, r.Target), " ")}) } else { rec.AddAnswer(&dns.Answer{Rdata: strings.Split(r.Target, " ")}) } @@ -146,7 +148,7 @@ func convert(zr *dns.ZoneRecord, domain string) ([]*models.RecordConfig, error) Original: zr, Type: zr.Type, } - if zr.Type == "MX" { + if zr.Type == "MX" || zr.Type == "SRV" { rec.CombinedTarget = true } found = append(found, rec)
+ +