httpcaddyfile: Fix protocols global option parsing (#5054)

* httpcaddyfile: Fix `protocols` global option parsing

When checking for a block, the current nesting must be used, otherwise it returns the wrong thing.

* Adjust adapt test to cover the broken behaviour that is now fixed

* Fix some admin tests which suddenly run even with -short
This commit is contained in:
Francis Lavoie 2022-09-20 10:09:04 -04:00 committed by GitHub
parent e3d04ff86b
commit 821a08a6e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 3 deletions

View file

@ -161,7 +161,7 @@ func (fooModule) Stop() error { return nil }
func TestETags(t *testing.T) {
RegisterModule(fooModule{})
if err := Load([]byte(`{"apps": {"foo": {"strField": "abc", "intField": 0}}}`), true); err != nil {
if err := Load([]byte(`{"admin": {"listen": "localhost:2999"}, "apps": {"foo": {"strField": "abc", "intField": 0}}}`), true); err != nil {
t.Fatalf("loading: %s", err)
}

View file

@ -162,7 +162,7 @@ func unmarshalCaddyfileServerOptions(d *caddyfile.Dispenser) (any, error) {
}
serverOpts.Protocols = append(serverOpts.Protocols, proto)
}
if d.NextBlock(0) {
if nesting := d.Nesting(); d.NextBlock(nesting) {
return nil, d.ArgErr()
}

View file

@ -12,8 +12,8 @@
}
max_header_size 100MB
log_credentials
strict_sni_host
protocols h1 h2 h2c h3
strict_sni_host
}
}