httpcaddyfile: Add 'experimental_http3' option

This commit is contained in:
Matthew Holt 2019-09-11 17:16:21 -06:00
parent e48d83452e
commit 53bbdf1766
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5
2 changed files with 13 additions and 0 deletions

View File

@ -64,6 +64,8 @@ func (st ServerType) Setup(originalServerBlocks []caddyfile.ServerBlock,
val, err = parseHTTPSPort(caddyfile.NewDispenser(segment))
case "handler_order":
val, err = parseHandlerOrder(caddyfile.NewDispenser(segment))
case "experimental_http3":
val, err = parseExperimentalHTTP3(caddyfile.NewDispenser(segment))
default:
return nil, warnings, fmt.Errorf("unrecognized parameter name: %s", dir)
}
@ -190,6 +192,13 @@ func (st ServerType) Setup(originalServerBlocks []caddyfile.ServerBlock,
// consolidate automation policies that are the exact same
tlsApp.Automation.Policies = consolidateAutomationPolicies(tlsApp.Automation.Policies)
// if experimental HTTP/3 is enabled, enable it on each server
if enableH3, ok := options["experimental_http3"].(bool); ok && enableH3 {
for _, srv := range httpApp.Servers {
srv.ExperimentalHTTP3 = true
}
}
// annnd the top-level config, then we're done!
cfg := &caddy.Config{AppsRaw: make(map[string]json.RawMessage)}
if !reflect.DeepEqual(httpApp, caddyhttp.App{}) {

View File

@ -52,6 +52,10 @@ func parseHTTPSPort(d *caddyfile.Dispenser) (int, error) {
return httpsPort, nil
}
func parseExperimentalHTTP3(d *caddyfile.Dispenser) (bool, error) {
return true, nil
}
func parseHandlerOrder(d *caddyfile.Dispenser) ([]string, error) {
if !d.Next() {
return nil, d.ArgErr()