caddyfile: Error on invalid site addresses containing comma (#4302)

Some users forget to use a comma between their site addresses. This is invalid (commas aren't a valid character in domains) and later parts of the code like certificate automation will try to use this otherwise, which doesn't make sense. Best to error as early as possible.

Example thread on the forums where this happened: https://caddy.community/t/simplify-caddyfile/13281/9
This commit is contained in:
Francis Lavoie 2021-08-23 13:26:07 -04:00 committed by GitHub
parent ce5a45db45
commit d74913f871
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -229,6 +229,13 @@ func (p *parser) addresses() error {
expectingAnother = false // but we may still see another one on this line expectingAnother = false // but we may still see another one on this line
} }
// If there's a comma here, it's probably because they didn't use a space
// between their two domains, e.g. "foo.com,bar.com", which would not be
// parsed as two separate site addresses.
if strings.Contains(tkn, ",") {
return p.Errf("Site addresses cannot contain a comma ',': '%s' - put a space after the comma to separate site addresses", tkn)
}
p.block.Keys = append(p.block.Keys, tkn) p.block.Keys = append(p.block.Keys, tkn)
} }