mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
Merge branch 'master' into tlim_corrector
This commit is contained in:
19
README.md
19
README.md
@ -18,19 +18,18 @@ Windows). The provider model is extensible, so more providers can be added.
|
||||
|
||||
Currently supported DNS providers:
|
||||
|
||||
- AWS Route 53
|
||||
- AXFR+DDNS
|
||||
- Active Directory (Deprecated, see Microsoft DNS)
|
||||
- Akamai Edge DNS
|
||||
- AutoDNS
|
||||
- AWS Route 53
|
||||
- AXFR+DDNS
|
||||
- Azure DNS
|
||||
- BIND
|
||||
- ClouDNS
|
||||
- Cloudflare
|
||||
- ClouDNS
|
||||
- deSEC
|
||||
- DigitalOcean
|
||||
- DNS Made Easy
|
||||
- DNSimple
|
||||
- DigitalOcean
|
||||
- Domainnameshop (Domeneshop)
|
||||
- Exoscale
|
||||
- Gandi
|
||||
@ -45,13 +44,13 @@ Currently supported DNS providers:
|
||||
- Loopia
|
||||
- LuaDNS
|
||||
- Microsoft Windows Server DNS Server
|
||||
- NS1
|
||||
- Name.com
|
||||
- Namecheap
|
||||
- Name.com
|
||||
- Netcup
|
||||
- Netlify
|
||||
- OVH
|
||||
- NS1
|
||||
- Oracle Cloud
|
||||
- OVH
|
||||
- Packetframe
|
||||
- Porkbun
|
||||
- PowerDNS
|
||||
@ -71,10 +70,10 @@ Currently supported Domain Registrars:
|
||||
- hosting.de
|
||||
- Internet.bs
|
||||
- INWX
|
||||
- Name.com
|
||||
- Namecheap
|
||||
- OVH
|
||||
- Name.com
|
||||
- OpenSRS
|
||||
- OVH
|
||||
|
||||
At Stack Overflow, we use this system to manage hundreds of domains
|
||||
and subdomains across multiple registrars and DNS providers.
|
||||
|
@ -1,12 +1,13 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/StackExchange/dnscontrol/v3/providers"
|
||||
_ "github.com/StackExchange/dnscontrol/v3/providers/_all"
|
||||
"github.com/fbiville/markdown-table-formatter/pkg/markdown"
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/StackExchange/dnscontrol/v3/providers"
|
||||
_ "github.com/StackExchange/dnscontrol/v3/providers/_all"
|
||||
"github.com/fbiville/markdown-table-formatter/pkg/markdown"
|
||||
)
|
||||
|
||||
func generateFeatureMatrix() error {
|
||||
@ -72,7 +73,7 @@ func featureEmoji(
|
||||
|
||||
func matrixData() *FeatureMatrix {
|
||||
const (
|
||||
OfficialSupport = "Official Support"
|
||||
OfficialSupport = "Official Support" // vs. community supported
|
||||
ProviderDNSProvider = "DNS Provider"
|
||||
ProviderRegistrar = "Registrar"
|
||||
DomainModifierAlias = "ALIAS"
|
||||
|
@ -34,15 +34,19 @@ var delimiterRegex = regexp.MustCompile(`(?m)^---\n`)
|
||||
|
||||
func parseFrontMatter(content string) (map[string]interface{}, string, error) {
|
||||
delimiterIndices := delimiterRegex.FindAllStringIndex(content, 2)
|
||||
startIndex := delimiterIndices[0][0]
|
||||
endIndex := delimiterIndices[1][0]
|
||||
yamlString := content[startIndex+4 : endIndex]
|
||||
var frontMatter map[string]interface{}
|
||||
err := yaml.Unmarshal([]byte(yamlString), &frontMatter)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
if len(delimiterIndices) > 0 {
|
||||
startIndex := delimiterIndices[0][0]
|
||||
endIndex := delimiterIndices[1][0]
|
||||
yamlString := content[startIndex+4 : endIndex]
|
||||
var frontMatter map[string]interface{}
|
||||
err := yaml.Unmarshal([]byte(yamlString), &frontMatter)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
return frontMatter, content[endIndex+4:], nil
|
||||
} else {
|
||||
return nil, "", fmt.Errorf("Failed to parse file. Remove it and try again.")
|
||||
}
|
||||
return frontMatter, content[endIndex+4:], nil
|
||||
}
|
||||
|
||||
var returnTypes = map[string]string{
|
||||
@ -81,8 +85,8 @@ func generateFunctionTypes() (string, error) {
|
||||
}
|
||||
frontMatter, body, err := parseFrontMatter(string(content))
|
||||
if err != nil {
|
||||
println("Error parsing front matter in", fPath)
|
||||
return "", err
|
||||
println("Error parsing front matter in", fPath, "error: ", err.Error())
|
||||
continue
|
||||
}
|
||||
if frontMatter["ts_ignore"] == true {
|
||||
continue
|
||||
|
2
commands/types/dnscontrol.d.ts
vendored
2
commands/types/dnscontrol.d.ts
vendored
@ -2240,7 +2240,7 @@ declare function R53_ZONE(zone_id: string): DomainModifier & RecordModifier;
|
||||
* [multi-string]: https://tools.ietf.org/html/rfc4408#section-3.1.3
|
||||
* [record-size]: https://tools.ietf.org/html/rfc4408#section-3.1.4
|
||||
*
|
||||
* `SPR_BUILDER()` returns multiple `TXT()` records:
|
||||
* `SPF_BUILDER()` returns multiple `TXT()` records:
|
||||
*
|
||||
* * `TXT("@", "v=spf1 .... ~all")`
|
||||
* * This is the optimized configuration.
|
||||
|
@ -88,6 +88,7 @@
|
||||
|
||||
* [Providers](providers.md)
|
||||
* [Akamai Edge DNS](providers/akamaiedgedns.md)
|
||||
* [Amazon Route 53](providers/route53.md)
|
||||
* [AutoDNS](providers/autodns.md)
|
||||
* [AXFR+DDNS](providers/axfrddns.md)
|
||||
* [Azure DNS](providers/azure_dns.md)
|
||||
@ -97,18 +98,18 @@
|
||||
* [CSC Global](providers/cscglobal.md)
|
||||
* [deSEC](providers/desec.md)
|
||||
* [DigitalOcean](providers/digitalocean.md)
|
||||
* [DNSimple](providers/dnsimple.md)
|
||||
* [DNS Made Simple](providers/dnsmadeeasy.md)
|
||||
* [DNSimple](providers/dnsimple.md)
|
||||
* [DNS-over-HTTPS](providers/dnsoverhttps.md)
|
||||
* [DOMAINNAMESHOP](providers/domainnameshop.md)
|
||||
* [easyname](providers/easyname.md)
|
||||
* [Gandi_v5](providers/gandi_v5.md)
|
||||
* [Google Cloud DNS](providers/gcloud.md)
|
||||
* [Gcore](providers/gcore.md)
|
||||
* [Hurricane Electric DNS](providers/hedns.md)
|
||||
* [Google Cloud DNS](providers/gcloud.md)
|
||||
* [Hetzner DNS Console](providers/hetzner.md)
|
||||
* [HEXONET](providers/hexonet.md)
|
||||
* [hosting.de](providers/hostingde.md)
|
||||
* [Hurricane Electric DNS](providers/hedns.md)
|
||||
* [Internet.bs](providers/internetbs.md)
|
||||
* [INWX](providers/inwx.md)
|
||||
* [Linode](providers/linode.md)
|
||||
@ -125,7 +126,6 @@
|
||||
* [Packetframe](providers/packetframe.md)
|
||||
* [Porkbun](providers/porkbun.md)
|
||||
* [PowerDNS](providers/powerdns.md)
|
||||
* [Amazon Route 53](providers/route53.md)
|
||||
* [RWTH DNS-Admin](providers/rwth.md)
|
||||
* [SoftLayer DNS](providers/softlayer.md)
|
||||
* [TransIP](providers/transip.md)
|
||||
|
@ -136,7 +136,7 @@ The parameters are:
|
||||
[multi-string]: https://tools.ietf.org/html/rfc4408#section-3.1.3
|
||||
[record-size]: https://tools.ietf.org/html/rfc4408#section-3.1.4
|
||||
|
||||
`SPR_BUILDER()` returns multiple `TXT()` records:
|
||||
`SPF_BUILDER()` returns multiple `TXT()` records:
|
||||
|
||||
* `TXT("@", "v=spf1 .... ~all")`
|
||||
* This is the optimized configuration.
|
||||
|
@ -76,8 +76,11 @@ Providers in this category and their maintainers are:
|
||||
|---|---|
|
||||
|`AZURE_DNS`|@vatsalyagoel|
|
||||
|`BIND`|@tlimoncelli|
|
||||
|`CLOUDFLAREAPI`|@tresni|
|
||||
|`CSCGLOBAL`|@mikenz|
|
||||
|`GCLOUD`|@riyadhalnur|
|
||||
|`NAMEDOTCOM`|@tlimoncelli|
|
||||
|`MSDNS`|@tlimoncelli|
|
||||
|`ROUTE53`|@tresni|
|
||||
|
||||
### Providers with "contributor support"
|
||||
|
||||
@ -100,16 +103,16 @@ Providers in this category and their maintainers are:
|
||||
|
||||
|Name|Maintainer|
|
||||
|---|---|
|
||||
|`AXFRDDNS`|@hnrgrgr|
|
||||
|`AKAMAIEDGEDNS`|@svernick|
|
||||
|`CLOUDNS`|@pragmaton|
|
||||
|`AXFRDDNS`|@hnrgrgr|
|
||||
|`CLOUDFLAREAPI`|@tresni|
|
||||
|`CLOUDNS`|@pragmaton|
|
||||
|`CSCGLOBAL`|@Air-New-Zealand|
|
||||
|`DESEC`|@D3luxee|
|
||||
|`DIGITALOCEAN`|@Deraen|
|
||||
|`DNSOVERHTTPS`|@mikenz|
|
||||
|`DNSIMPLE`|@onlyhavecans|
|
||||
|`DNSMADEEASY`|@vojtad|
|
||||
|`DNSOVERHTTPS`|@mikenz|
|
||||
|`DOMAINNAMESHOP`|@SimenBai|
|
||||
|`EASYNAME`|@tresni|
|
||||
|`EXOSCALE`|@pierre-emmanuelJ|
|
||||
@ -132,8 +135,8 @@ Providers in this category and their maintainers are:
|
||||
|`OVH`|@masterzen|
|
||||
|`PACKETFRAME`|@hamptonmoore|
|
||||
|`POWERDNS`|@jpbede|
|
||||
|`RWTH`|@MisterErwin|
|
||||
|`ROUTE53`|@tresni|
|
||||
|`RWTH`|@MisterErwin|
|
||||
|`SOFTLAYER`|@jamielennox|
|
||||
|`TRANSIP`|@blackshadev|
|
||||
|`VULTR`|@pgaskin|
|
||||
|
@ -310,6 +310,7 @@ Here are some last-minute things to check before you submit your PR.
|
||||
2. Make sure all appropriate documentation is current. (See [Step 8](#step-8-manual-tests))
|
||||
3. Check that dependencies are current (See [Step 13](#step-13-dependencies))
|
||||
4. Re-run the integration test one last time (See [Step 7](#step-7-integration-test))
|
||||
5. Re-read the [maintainer's responsibilities](providers.md) bullet list. By submitting a provider you agree to maintain it, respond to bugs, perioidically re-run the integration test to verify nothing has broken, and if we don't hear from you for 2 months we may disable the provider.
|
||||
|
||||
## Step 15: After the PR is merged
|
||||
|
||||
|
@ -1,9 +1,18 @@
|
||||
{
|
||||
"AKAMAIEDGEDNS": {
|
||||
"access_token": "$AED_ACCESS_TOKEN",
|
||||
"client_secret": "$AED_CLIENT_SECRET",
|
||||
"client_token": "$AED_CLIENT_TOKEN",
|
||||
"contract_id": "$AED_CONTRACT_ID",
|
||||
"domain": "$AED_DOMAIN",
|
||||
"group_id": "$AED_GROUP_ID",
|
||||
"host": "$AED_HOST"
|
||||
},
|
||||
"AUTODNS": {
|
||||
"username": "$AUTODNS_USERNAME",
|
||||
"password": "$AUTODNS_PASSWORD",
|
||||
"context": "$AUTODNS_CONTEXT",
|
||||
"domain": "$AUTODNS_DOMAIN"
|
||||
"domain": "$AUTODNS_DOMAIN",
|
||||
"password": "$AUTODNS_PASSWORD",
|
||||
"username": "$AUTODNS_USERNAME"
|
||||
},
|
||||
"AXFRDDNS": {
|
||||
"domain": "$AXFRDDNS_DOMAIN",
|
||||
@ -13,29 +22,23 @@
|
||||
"update-key": "$AXFRDDNS_UPDATE_KEY"
|
||||
},
|
||||
"AZURE_DNS": {
|
||||
"TYPE": "AZURE_DNS",
|
||||
"ClientID": "$AZURE_DNS_CLIENT_ID",
|
||||
"ClientSecret": "$AZURE_DNS_CLIENT_SECRET",
|
||||
"ResourceGroup": "$AZURE_DNS_RESOURCE_GROUP",
|
||||
"SubscriptionID": "$AZURE_DNS_SUBSCRIPTION_ID",
|
||||
"TYPE": "AZURE_DNS",
|
||||
"TenantID": "$AZURE_DNS_TENANT_ID",
|
||||
"domain": "$AZURE_DNS_DOMAIN"
|
||||
},
|
||||
"BIND": {
|
||||
"domain": "$BIND_DOMAIN"
|
||||
},
|
||||
"CSCGLOBAL": {
|
||||
"api-key": "$CSCGLOBAL_APIKEY",
|
||||
"user-token": "$CSCGLOBAL_USERTOKEN",
|
||||
"notification_emails": "$CSCGLOBAL_NOTIFICATION",
|
||||
"domain": "$CSCGLOBAL_DOMAIN"
|
||||
},
|
||||
"CLOUDFLAREAPI": {
|
||||
"accountid": "$CLOUDFLAREAPI_ACCOUNTID",
|
||||
"apikey": "$CLOUDFLAREAPI_KEY",
|
||||
"apitoken": "$CLOUDFLAREAPI_TOKEN",
|
||||
"apiuser": "$CLOUDFLAREAPI_USER",
|
||||
"domain": "$CLOUDFLAREAPI_DOMAIN",
|
||||
"accountid": "$CLOUDFLAREAPI_ACCOUNTID"
|
||||
"domain": "$CLOUDFLAREAPI_DOMAIN"
|
||||
},
|
||||
"CLOUDFLAREAPI_OLD": {
|
||||
"apikey": "$CF_KEY",
|
||||
@ -45,9 +48,15 @@
|
||||
},
|
||||
"CLOUDNS": {
|
||||
"auth-id": "$CLOUDNS_AUTH_ID",
|
||||
"sub-auth-id": "$CLOUDNS_SUB_AUTH_ID",
|
||||
"auth-password": "$CLOUDNS_AUTH_PASSWORD",
|
||||
"domain": "$CLOUDNS_DOMAIN"
|
||||
"domain": "$CLOUDNS_DOMAIN",
|
||||
"sub-auth-id": "$CLOUDNS_SUB_AUTH_ID"
|
||||
},
|
||||
"CSCGLOBAL": {
|
||||
"api-key": "$CSCGLOBAL_APIKEY",
|
||||
"domain": "$CSCGLOBAL_DOMAIN",
|
||||
"notification_emails": "$CSCGLOBAL_NOTIFICATION",
|
||||
"user-token": "$CSCGLOBAL_USERTOKEN"
|
||||
},
|
||||
"DESEC": {
|
||||
"auth-token": "$DESEC_TOKEN",
|
||||
@ -63,26 +72,22 @@
|
||||
"token": "$DNSIMPLE_TOKEN"
|
||||
},
|
||||
"DNSMADEEASY": {
|
||||
"api_key": "$DNSMADEEASY_API_KEY",
|
||||
"domain": "$DNSMADEEASY_DOMAIN",
|
||||
"sandbox": "true",
|
||||
"api_key": "$DNSMADEEASY_API_KEY",
|
||||
"secret_key": "$DNSMADEEASY_SECRET_KEY"
|
||||
},
|
||||
"AKAMAIEDGEDNS": {
|
||||
"client_secret": "$AED_CLIENT_SECRET",
|
||||
"host": "$AED_HOST",
|
||||
"access_token": "$AED_ACCESS_TOKEN",
|
||||
"client_token": "$AED_CLIENT_TOKEN",
|
||||
"contract_id": "$AED_CONTRACT_ID",
|
||||
"group_id": "$AED_GROUP_ID",
|
||||
"domain": "$AED_DOMAIN"
|
||||
"DOMAINNAMESHOP": {
|
||||
"domain": "$DOMAINNAMESHOP_DOMAIN",
|
||||
"secret": "$DOMAINNAMESHOP_SECRET",
|
||||
"token": "$DOMAINNAMESHOP_TOKEN"
|
||||
},
|
||||
"EXOSCALE": {
|
||||
"apikey": "$EXOSCALE_API_KEY",
|
||||
"apizone": "ch-gva-2",
|
||||
"dns-endpoint": "https://api.exoscale.com/v2",
|
||||
"domain": "$EXOSCALE_DOMAIN",
|
||||
"secretkey": "$EXOSCALE_SECRET_KEY",
|
||||
"apizone": "ch-gva-2"
|
||||
"secretkey": "$EXOSCALE_SECRET_KEY"
|
||||
},
|
||||
"GANDI_V5": {
|
||||
"apikey": "$GANDI_V5_APIKEY",
|
||||
@ -135,25 +140,25 @@
|
||||
"token": "$LINODE_TOKEN"
|
||||
},
|
||||
"LOOPIA": {
|
||||
"username": "$LOOPIA_USERNAME",
|
||||
"domain": "$LOOPIA_DOMAIN",
|
||||
"password": "$LOOPIA_PASSWORD",
|
||||
"domain": "$LOOPIA_DOMAIN"
|
||||
"username": "$LOOPIA_USERNAME"
|
||||
},
|
||||
"LUADNS": {
|
||||
"apikey": "$LUADNS_APIKEY",
|
||||
"domain": "$LUADNS_DOMAIN",
|
||||
"email": "$LUADNS_EMAIL",
|
||||
"apikey": "$LUADNS_APIKEY"
|
||||
"email": "$LUADNS_EMAIL"
|
||||
},
|
||||
"MSDNS": {
|
||||
"domain": "$MSDNS_DOMAIN",
|
||||
"dnsserver": "$MSDNS_DNSSERVER",
|
||||
"domain": "$MSDNS_DOMAIN",
|
||||
"pssession": "$MSDNS_PSSESSION"
|
||||
},
|
||||
"NAMECHEAP": {
|
||||
"BaseURL": "$NAMECHEAP_BASEURL",
|
||||
"apikey": "$NAMECHEAP_KEY",
|
||||
"apiuser": "$NAMECHEAP_USER",
|
||||
"domain": "$NAMECHEAP_DOMAIN",
|
||||
"BaseURL": "$NAMECHEAP_BASEURL"
|
||||
"domain": "$NAMECHEAP_DOMAIN"
|
||||
},
|
||||
"NAMEDOTCOM": {
|
||||
"apikey": "$NAMEDOTCOM_KEY",
|
||||
@ -167,18 +172,23 @@
|
||||
"customer-number": "$NETCUP_CUSTOMER_NUMBER",
|
||||
"domain": "$NETCUP_DOMAIN"
|
||||
},
|
||||
"NETLIFY": {
|
||||
"domain": "$NETLIFY_DOMAIN",
|
||||
"slug": "$NETLIFY_ACCOUNT_SLUG",
|
||||
"token": "$NETLIFY_TOKEN"
|
||||
},
|
||||
"NS1": {
|
||||
"api_token": "$NS1_TOKEN",
|
||||
"domain": "$NS1_DOMAIN"
|
||||
},
|
||||
"ORACLE": {
|
||||
"user_ocid": "$ORACLE_USER_OCID",
|
||||
"tenancy_ocid": "$ORACLE_TENANCY_OCID",
|
||||
"fingerprint": "$ORACLE_FINGERPRINT",
|
||||
"region": "$ORACLE_REGION",
|
||||
"private_key": "$ORACLE_PRIVATE_KEY",
|
||||
"compartment": "$ORACLE_COMPARTMENT",
|
||||
"domain": "$ORACLE_DOMAIN"
|
||||
"domain": "$ORACLE_DOMAIN",
|
||||
"fingerprint": "$ORACLE_FINGERPRINT",
|
||||
"private_key": "$ORACLE_PRIVATE_KEY",
|
||||
"region": "$ORACLE_REGION",
|
||||
"tenancy_ocid": "$ORACLE_TENANCY_OCID",
|
||||
"user_ocid": "$ORACLE_USER_OCID"
|
||||
},
|
||||
"OVH": {
|
||||
"app-key": "$OVH_APP_KEY",
|
||||
@ -186,20 +196,20 @@
|
||||
"consumer-key": "$OVH_CONSUMER_KEY",
|
||||
"domain": "$OVH_DOMAIN"
|
||||
},
|
||||
"POWERDNS": {
|
||||
"apiKey": "$POWERDNS_APIKEY",
|
||||
"apiUrl": "$POWERDNS_APIURL",
|
||||
"serverName": "$POWERDNS_SERVERNAME",
|
||||
"domain": "$POWERDNS_DOMAIN"
|
||||
},
|
||||
"PACKETFRAME": {
|
||||
"token": "$PACKETFRAME_TOKEN",
|
||||
"domain": "$PACKETFRAME_DOMAIN"
|
||||
"domain": "$PACKETFRAME_DOMAIN",
|
||||
"token": "$PACKETFRAME_TOKEN"
|
||||
},
|
||||
"PORKBUN": {
|
||||
"api_key": "$PORKBUN_API_KEY",
|
||||
"secret_key": "$PORKBUN_SECRET_KEY",
|
||||
"domain": "$PORKBUN_DOMAIN"
|
||||
"domain": "$PORKBUN_DOMAIN",
|
||||
"secret_key": "$PORKBUN_SECRET_KEY"
|
||||
},
|
||||
"POWERDNS": {
|
||||
"apiKey": "$POWERDNS_APIKEY",
|
||||
"apiUrl": "$POWERDNS_APIURL",
|
||||
"domain": "$POWERDNS_DOMAIN",
|
||||
"serverName": "$POWERDNS_SERVERNAME"
|
||||
},
|
||||
"ROUTE53": {
|
||||
"KeyId": "$ROUTE53_KEY_ID",
|
||||
@ -211,24 +221,14 @@
|
||||
"domain": "$SL_DOMAIN",
|
||||
"username": "$SL_USERNAME"
|
||||
},
|
||||
"TRANSIP": {
|
||||
"AccessToken": "$TRANSIP_ACCESS_TOKEN",
|
||||
"AccountName": "$TRANSIP_ACCOUNT_NAME",
|
||||
"PrivateKey": "$TRANSIP_PRIVATE_KEY",
|
||||
"domain": "$TRANSIP_DOMAIN"
|
||||
},
|
||||
"VULTR": {
|
||||
"domain": "$VULTR_DOMAIN",
|
||||
"token": "$VULTR_TOKEN"
|
||||
},
|
||||
"TRANSIP": {
|
||||
"AccountName": "$TRANSIP_ACCOUNT_NAME",
|
||||
"PrivateKey": "$TRANSIP_PRIVATE_KEY",
|
||||
"AccessToken": "$TRANSIP_ACCESS_TOKEN",
|
||||
"domain": "$TRANSIP_DOMAIN"
|
||||
},
|
||||
"DOMAINNAMESHOP": {
|
||||
"token": "$DOMAINNAMESHOP_TOKEN",
|
||||
"secret": "$DOMAINNAMESHOP_SECRET",
|
||||
"domain": "$DOMAINNAMESHOP_DOMAIN"
|
||||
},
|
||||
"NETLIFY": {
|
||||
"token": "$NETLIFY_TOKEN",
|
||||
"slug": "$NETLIFY_ACCOUNT_SLUG",
|
||||
"domain": "$NETLIFY_DOMAIN"
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ var features = providers.DocumentationNotes{
|
||||
providers.CanUseTLSA: providers.Can(),
|
||||
providers.DocCreateDomains: providers.Can(),
|
||||
providers.DocDualHost: providers.Can(),
|
||||
providers.DocOfficiallySupported: providers.Can(),
|
||||
providers.DocOfficiallySupported: providers.Cannot(),
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
@ -27,7 +27,7 @@ var features = providers.DocumentationNotes{
|
||||
providers.CanUseSRV: providers.Can("SRV records with empty targets are not supported"),
|
||||
providers.DocCreateDomains: providers.Cannot("New domains require registration"),
|
||||
providers.DocDualHost: providers.Can(),
|
||||
providers.DocOfficiallySupported: providers.Can(),
|
||||
providers.DocOfficiallySupported: providers.Cannot(),
|
||||
}
|
||||
|
||||
func newReg(conf map[string]string) (providers.Registrar, error) {
|
||||
|
Reference in New Issue
Block a user