@@ -139,20 +139,29 @@ func extractAllSettings(jsonBytes []byte) (
139
139
return allProviders , warnings , nil
140
140
}
141
141
142
- var ErrProviderNoLongerSupported = errors .New ("provider no longer supported" )
142
+ var (
143
+ ErrProviderNoLongerSupported = errors .New ("provider no longer supported" )
144
+ ErrDomainBlank = errors .New ("domain cannot be blank for provider" )
145
+ )
143
146
144
147
func makeSettingsFromObject (common commonSettings , rawSettings json.RawMessage ,
145
148
retroGlobalIPv6Suffix netip.Prefix ) (
146
149
providers []provider.Provider , warnings []string , err error ) {
147
150
if common .Provider == "google" {
148
151
return nil , nil , fmt .Errorf ("%w: %s" , ErrProviderNoLongerSupported , common .Provider )
149
152
}
153
+
154
+ if common .Domain == "" && (common .Provider != "duckdns" && common .Provider != "goip" ) {
155
+ return nil , nil , fmt .Errorf ("%w: %s" , ErrDomainBlank , common .Provider )
156
+ }
157
+
150
158
if common .Domain != "" {
151
159
err = domain .Check (common .Domain )
152
160
if err != nil {
153
161
return nil , nil , fmt .Errorf ("validating domain: %w" , err )
154
162
}
155
163
}
164
+
156
165
providerName := models .Provider (common .Provider )
157
166
if providerName == constants .DuckDNS { // only hosts, no domain
158
167
if common .Domain != "" { // retro compatibility
0 commit comments