mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-12-09 21:55:57 +08:00
55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
package inwx
|
|
|
|
import (
|
|
"golang.org/x/net/idna"
|
|
)
|
|
|
|
const (
|
|
// https://www.inwx.com/en/help/apidoc/f/ch03.html#type.dnssecdomainstatus
|
|
// claims status values can be 'DELETE_ALL', 'MANUAL', 'UPDATE', but
|
|
// testing shows 'AUTO' is what to expect if the domain has automatic
|
|
// DNSSEC enabled.
|
|
|
|
// AutoDNSSEC is the status for DNSSEC enabled with automatic management
|
|
AutoDNSSECStatus = "AUTO"
|
|
// ManualDNSSEC is the status for DNSSEC enabled with manual management
|
|
ManualDNSSECStatus = "MANUAL"
|
|
)
|
|
|
|
// DNSSecStatus returns domain dnssec status
|
|
func (api *inwxAPI) DNSSecStatus(domain string) (string, error) {
|
|
|
|
resp, err := api.client.Dnssec.Info([]string{domain})
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
// domain has no DNSSEC configuration
|
|
if len(resp.Data) == 0 {
|
|
return "", nil
|
|
}
|
|
|
|
return resp.Data[0].DNSSecStatus, nil
|
|
}
|
|
|
|
// enableAutoDNSSEC enables automatic management of DNSSEC
|
|
func (api *inwxAPI) enableAutoDNSSEC(domain string) error {
|
|
// if the domain is IDN, it must be in Unicode - ACE encoding is not supported
|
|
// in the INWX dnssec.enablednssec endpoint
|
|
domain, err := idna.ToUnicode(domain)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = api.client.Dnssec.Enable(domain)
|
|
|
|
return err
|
|
}
|
|
|
|
// disableAutoDNSSEC disables automatic management of DNSSEC
|
|
func (api *inwxAPI) disableAutoDNSSEC(domain string) error {
|
|
|
|
err := api.client.Dnssec.Disable(domain)
|
|
|
|
return err
|
|
}
|