summaryrefslogtreecommitdiff
path: root/caddyconfig/httpcaddyfile/httptype.go
diff options
context:
space:
mode:
authorFrancis Lavoie <lavofr@gmail.com>2020-05-11 17:00:35 -0400
committerGitHub <noreply@github.com>2020-05-11 15:00:35 -0600
commitdc9f4f13fc1cc102c713c69ded295b3fcf685e96 (patch)
treecbc2bc158947509b222908bbad862ac5581f1cb4 /caddyconfig/httpcaddyfile/httptype.go
parent4c55d26f11329243591d04ca5a52298b38bca9a8 (diff)
httpcaddyfile: Make global options pluggable (#3265)
* httpcaddyfile: Make global options pluggable * httpcaddyfile: Add a global options adapt test * httpcaddyfile: Wrap err Co-Authored-By: Dave Henderson <dhenderson@gmail.com> * httpcaddyfile: Revert wrap err Co-authored-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'caddyconfig/httpcaddyfile/httptype.go')
-rw-r--r--caddyconfig/httpcaddyfile/httptype.go39
1 files changed, 9 insertions, 30 deletions
diff --git a/caddyconfig/httpcaddyfile/httptype.go b/caddyconfig/httpcaddyfile/httptype.go
index aacaf91..378289c 100644
--- a/caddyconfig/httpcaddyfile/httptype.go
+++ b/caddyconfig/httpcaddyfile/httptype.go
@@ -284,39 +284,18 @@ func (ServerType) evaluateGlobalOptionsBlock(serverBlocks []serverBlock, options
var val interface{}
var err error
disp := caddyfile.NewDispenser(segment)
- switch dir {
- case "debug":
- val = true
- case "http_port":
- val, err = parseOptHTTPPort(disp)
- case "https_port":
- val, err = parseOptHTTPSPort(disp)
- case "default_sni":
- val, err = parseOptSingleString(disp)
- case "order":
- val, err = parseOptOrder(disp)
- case "experimental_http3":
- val, err = parseOptExperimentalHTTP3(disp)
- case "storage":
- val, err = parseOptStorage(disp)
- case "acme_ca", "acme_dns", "acme_ca_root":
- val, err = parseOptSingleString(disp)
- case "email":
- val, err = parseOptSingleString(disp)
- case "admin":
- val, err = parseOptAdmin(disp)
- case "on_demand_tls":
- val, err = parseOptOnDemand(disp)
- case "local_certs":
- val = true
- case "key_type":
- val, err = parseOptSingleString(disp)
- default:
- return nil, fmt.Errorf("unrecognized parameter name: %s", dir)
+
+ dirFunc, ok := registeredGlobalOptions[dir]
+ if !ok {
+ tkn := segment[0]
+ return nil, fmt.Errorf("%s:%d: unrecognized global option: %s", tkn.File, tkn.Line, dir)
}
+
+ val, err = dirFunc(disp)
if err != nil {
- return nil, fmt.Errorf("%s: %v", dir, err)
+ return nil, fmt.Errorf("parsing caddyfile tokens for '%s': %v", dir, err)
}
+
options[dir] = val
}