Browse Source

httpcaddyfile: error for wrong arg count of admin opt (#3126) (#3131)

master
Francis Lavoie 5 years ago
committed by GitHub
parent
commit
90f1f7bce7
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 68
      caddyconfig/httpcaddyfile/httptype_test.go
  2. 4
      caddyconfig/httpcaddyfile/options.go

68
caddyconfig/httpcaddyfile/httptype_test.go

@ -79,3 +79,71 @@ func TestSpecificity(t *testing.T) {
}
}
}
func TestGlobalOptions(t *testing.T) {
for i, tc := range []struct {
input string
expectWarn bool
expectError bool
}{
{
input: `
{
email test@example.com
}
:80
`,
expectWarn: false,
expectError: false,
},
{
input: `
{
admin off
}
:80
`,
expectWarn: false,
expectError: false,
},
{
input: `
{
admin 127.0.0.1:2020
}
:80
`,
expectWarn: false,
expectError: false,
},
{
input: `
{
admin {
disabled false
}
}
:80
`,
expectWarn: false,
expectError: true,
},
} {
adapter := caddyfile.Adapter{
ServerType: ServerType{},
}
_, warnings, err := adapter.Adapt([]byte(tc.input), nil)
if len(warnings) > 0 != tc.expectWarn {
t.Errorf("Test %d warning expectation failed Expected: %v, got %v", i, tc.expectWarn, warnings)
continue
}
if err != nil != tc.expectError {
t.Errorf("Test %d error expectation failed Expected: %v, got %s", i, tc.expectError, err)
continue
}
}
}

4
caddyconfig/httpcaddyfile/options.go

@ -177,7 +177,9 @@ func parseOptSingleString(d *caddyfile.Dispenser) (string, error) {
func parseOptAdmin(d *caddyfile.Dispenser) (string, error) {
if d.Next() {
var listenAddress string
d.AllArgs(&listenAddress)
if !d.AllArgs(&listenAddress) {
return "", d.ArgErr()
}
if listenAddress == "" {
listenAddress = caddy.DefaultAdminListen
}

Loading…
Cancel
Save