aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--caddyconfig/caddyfile/parse.go9
-rw-r--r--caddyconfig/caddyfile/parse_test.go8
2 files changed, 13 insertions, 4 deletions
diff --git a/caddyconfig/caddyfile/parse.go b/caddyconfig/caddyfile/parse.go
index 17d824efd..e19b3b97d 100644
--- a/caddyconfig/caddyfile/parse.go
+++ b/caddyconfig/caddyfile/parse.go
@@ -264,8 +264,13 @@ func (p *parser) addresses() error {
return p.Errf("Site addresses cannot contain a comma ',': '%s' - put a space after the comma to separate site addresses", value)
}
- token.Text = value
- p.block.Keys = append(p.block.Keys, token)
+ // After the above, a comma surrounded by spaces would result
+ // in an empty token which we should ignore
+ if value != "" {
+ // Add the token as a site address
+ token.Text = value
+ p.block.Keys = append(p.block.Keys, token)
+ }
}
// Advance token and possibly break out of loop or return error
diff --git a/caddyconfig/caddyfile/parse_test.go b/caddyconfig/caddyfile/parse_test.go
index 7157b2b5f..d3fada4e0 100644
--- a/caddyconfig/caddyfile/parse_test.go
+++ b/caddyconfig/caddyfile/parse_test.go
@@ -555,6 +555,10 @@ func TestParseAll(t *testing.T) {
{"localhost:1234", "http://host2"},
}},
+ {`foo.example.com , example.com`, false, [][]string{
+ {"foo.example.com", "example.com"},
+ }},
+
{`localhost:1234, http://host2,`, true, [][]string{}},
{`http://host1.com, http://host2.com {
@@ -614,8 +618,8 @@ func TestParseAll(t *testing.T) {
}
for j, block := range blocks {
if len(block.Keys) != len(test.keys[j]) {
- t.Errorf("Test %d: Expected %d keys in block %d, got %d",
- i, len(test.keys[j]), j, len(block.Keys))
+ t.Errorf("Test %d: Expected %d keys in block %d, got %d: %v",
+ i, len(test.keys[j]), j, len(block.Keys), block.Keys)
continue
}
for k, addr := range block.GetKeysText() {