From c32b7e8865224b124a9be999317f87d45e2b2a48 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Tue, 10 Sep 2019 14:12:51 -0600 Subject: fastcgi: Make EnvVars a map instead of a slice --- modules/caddyhttp/reverseproxy/fastcgi/caddyfile.go | 5 ++++- modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'modules/caddyhttp') diff --git a/modules/caddyhttp/reverseproxy/fastcgi/caddyfile.go b/modules/caddyhttp/reverseproxy/fastcgi/caddyfile.go index c8b9f63cb..6fa63bebb 100644 --- a/modules/caddyhttp/reverseproxy/fastcgi/caddyfile.go +++ b/modules/caddyhttp/reverseproxy/fastcgi/caddyfile.go @@ -44,7 +44,10 @@ func (t *Transport) UnmarshalCaddyfile(d *caddyfile.Dispenser) error { if len(args) != 2 { return d.ArgErr() } - t.EnvVars = append(t.EnvVars, [2]string{args[0], args[1]}) + if t.EnvVars == nil { + t.EnvVars = make(map[string]string) + } + t.EnvVars[args[0]] = args[1] default: return d.Errf("unrecognized subdirective %s", d.Val()) diff --git a/modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go b/modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go index 91039c932..9df6585ed 100644 --- a/modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go +++ b/modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go @@ -55,8 +55,8 @@ type Transport struct { // PATH_INFO for the CGI script to use. SplitPath string `json:"split_path,omitempty"` - // Environment variables (TODO: make a map of string to value...?) - EnvVars [][2]string `json:"env,omitempty"` + // Extra environment variables + EnvVars map[string]string `json:"env,omitempty"` // The duration used to set a deadline when connecting to an upstream. DialTimeout caddy.Duration `json:"dial_timeout,omitempty"` @@ -259,8 +259,8 @@ func (t Transport) buildEnv(r *http.Request) (map[string]string, error) { } // Add env variables from config (with support for placeholders in values) - for _, envVar := range t.EnvVars { - env[envVar[0]] = repl.ReplaceAll(envVar[1], "") + for key, value := range t.EnvVars { + env[key] = repl.ReplaceAll(value, "") } // Add all HTTP headers to env variables -- cgit v1.2.3