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

NS1: Add SVCB, HTTPS, TLSA support (#2945)

This commit is contained in:
Costas Drogos
2024-05-09 03:21:17 +02:00
committed by GitHub
parent 27f9a5f92b
commit 7bd931694a
2 changed files with 15 additions and 1 deletions

View File

@ -51,7 +51,7 @@ If a feature is definitively not supported for whatever reason, we would also li
| [`NAMEDOTCOM`](provider/namedotcom.md) | ❌ | ✅ | ✅ | ❌ | ✅ | ❔ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ |
| [`NETCUP`](provider/netcup.md) | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ❌ |
| [`NETLIFY`](provider/netlify.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❔ | ✅ | ❌ | ❔ | ❌ | ❌ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
| [`NS1`](provider/ns1.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | | | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
| [`NS1`](provider/ns1.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | | | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
| [`OPENSRS`](provider/opensrs.md) | ❌ | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
| [`ORACLE`](provider/oracle.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
| [`OVH`](provider/ovh.md) | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ |

View File

@ -25,9 +25,12 @@ var docNotes = providers.DocumentationNotes{
providers.CanUseCAA: providers.Can(),
providers.CanUseDS: providers.Can(),
providers.CanUseDSForChildren: providers.Can(),
providers.CanUseHTTPS: providers.Can(),
providers.CanUseLOC: providers.Cannot(),
providers.CanUseNAPTR: providers.Can(),
providers.CanUsePTR: providers.Can(),
providers.CanUseSVCB: providers.Can(),
providers.CanUseTLSA: providers.Can(),
providers.DocCreateDomains: providers.Can(),
providers.DocDualHost: providers.Can(),
providers.DocOfficiallySupported: providers.Cannot(),
@ -332,6 +335,17 @@ func buildRecord(recs models.Records, domain string, id string) *dns.Record {
} else if r.Type == "NS1_URLFWD" {
rec.Type = "URLFWD"
rec.AddAnswer(&dns.Answer{Rdata: strings.Fields(r.GetTargetField())})
} else if r.Type == "SVCB" || r.Type == "HTTPS" {
rec.AddAnswer(&dns.Answer{Rdata: []string{
strconv.Itoa(int(r.SvcPriority)),
r.GetTargetField(),
r.SvcParams}})
} else if r.Type == "TLSA" {
rec.AddAnswer(&dns.Answer{Rdata: []string{
strconv.Itoa(int(r.TlsaUsage)),
strconv.Itoa(int(r.TlsaSelector)),
strconv.Itoa(int(r.TlsaMatchingType)),
r.GetTargetField()}})
} else {
rec.AddAnswer(&dns.Answer{Rdata: strings.Fields(r.GetTargetField())})
}