Skip to content

Commit 22daa5f

Browse files
CyberAustinqdm12
authored andcommitted
Implemented blank domain check at a more global level, so there isn't a need to add a check in every provider's individual package.
1 parent 1a4b5e0 commit 22daa5f

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

internal/params/json.go

+10-1
Original file line numberDiff line numberDiff line change
@@ -139,20 +139,29 @@ func extractAllSettings(jsonBytes []byte) (
139139
return allProviders, warnings, nil
140140
}
141141

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+
)
143146

144147
func makeSettingsFromObject(common commonSettings, rawSettings json.RawMessage,
145148
retroGlobalIPv6Suffix netip.Prefix) (
146149
providers []provider.Provider, warnings []string, err error) {
147150
if common.Provider == "google" {
148151
return nil, nil, fmt.Errorf("%w: %s", ErrProviderNoLongerSupported, common.Provider)
149152
}
153+
154+
if common.Domain == "" && (common.Provider != "duckdns" && common.Provider != "goip") {
155+
return nil, nil, fmt.Errorf("%w: %s", ErrDomainBlank, common.Provider)
156+
}
157+
150158
if common.Domain != "" {
151159
err = domain.Check(common.Domain)
152160
if err != nil {
153161
return nil, nil, fmt.Errorf("validating domain: %w", err)
154162
}
155163
}
164+
156165
providerName := models.Provider(common.Provider)
157166
if providerName == constants.DuckDNS { // only hosts, no domain
158167
if common.Domain != "" { // retro compatibility

0 commit comments

Comments
 (0)