mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-09-05 04:34:32 +08:00
Ban NO_PURGE when using BIND and others. (#180)
This commit is contained in:
parent
73962470bc
commit
2534c8eaf2
4 changed files with 13 additions and 1 deletions
|
@ -249,6 +249,11 @@ func NormalizeAndValidateConfig(config *models.DNSConfig) (errs []error) {
|
|||
} else {
|
||||
pTypes = append(pTypes, pType)
|
||||
}
|
||||
|
||||
//If NO_PURGE is in use, make sure this *isn't* a provider that *doesn't* support NO_PURGE.
|
||||
if domain.KeepUnknown && providers.ProviderHasCabability(pType, providers.CantUseNOPURGE) {
|
||||
errs = append(errs, fmt.Errorf("%s uses NO_PURGE which is not supported by %s(%s)", domain.Name, p, pType))
|
||||
}
|
||||
}
|
||||
|
||||
// Normalize Nameservers.
|
||||
|
|
|
@ -47,7 +47,7 @@ func initBind(config map[string]string, providermeta json.RawMessage) (providers
|
|||
}
|
||||
|
||||
func init() {
|
||||
providers.RegisterDomainServiceProviderType("BIND", initBind, providers.CanUsePTR, providers.CanUseSRV, providers.CanUseCAA)
|
||||
providers.RegisterDomainServiceProviderType("BIND", initBind, providers.CanUsePTR, providers.CanUseSRV, providers.CanUseCAA, providers.CantUseNOPURGE)
|
||||
}
|
||||
|
||||
type SoaInfo struct {
|
||||
|
|
|
@ -18,6 +18,8 @@ type Namecheap struct {
|
|||
|
||||
func init() {
|
||||
providers.RegisterRegistrarType("NAMECHEAP", newReg)
|
||||
// NOTE(tlim): If in the future the DNS Service Provider is implemented,
|
||||
// most likely it will require providers.CantUseNOPURGE.
|
||||
}
|
||||
|
||||
func newReg(m map[string]string) (providers.Registrar, error) {
|
||||
|
|
|
@ -49,6 +49,11 @@ const (
|
|||
CanUseSRV
|
||||
// CanUseCAA indicates the provider can handle CAA records
|
||||
CanUseCAA
|
||||
// CantUseNOPURGE indicates NO_PURGE is broken for this provider. To make it
|
||||
// work would require complex emulation of an incremental update mechanism,
|
||||
// so it is easier to simply mark this feature as not working for this
|
||||
// provider.
|
||||
CantUseNOPURGE
|
||||
)
|
||||
|
||||
func ProviderHasCabability(pType string, cap Capability) bool {
|
||||
|
|
Loading…
Add table
Reference in a new issue