Commit 9e3852f2 authored by Matt Holt's avatar Matt Holt

Merge pull request #34 from abiosoft/master

fastcgi: user defined environment variables
parents 49bb3f13 447d0ce0
...@@ -200,6 +200,11 @@ func (h Handler) buildEnv(r *http.Request, rule Rule, path string) (map[string]s ...@@ -200,6 +200,11 @@ func (h Handler) buildEnv(r *http.Request, rule Rule, path string) (map[string]s
"SCRIPT_NAME": scriptName, "SCRIPT_NAME": scriptName,
} }
// Add env variables from config
for _, envVar := range rule.EnvVars {
env[envVar[0]] = envVar[1]
}
// Add all HTTP headers to env variables // Add all HTTP headers to env variables
for field, val := range r.Header { for field, val := range r.Header {
header := strings.ToUpper(field) header := strings.ToUpper(field)
...@@ -253,6 +258,12 @@ func parse(c middleware.Controller) ([]Rule, error) { ...@@ -253,6 +258,12 @@ func parse(c middleware.Controller) ([]Rule, error) {
return rules, c.ArgErr() return rules, c.ArgErr()
} }
rule.IndexFile = c.Val() rule.IndexFile = c.Val()
case "env":
envArgs := c.RemainingArgs()
if len(envArgs) < 2 {
return rules, c.ArgErr()
}
rule.EnvVars = append(rule.EnvVars, [2]string{envArgs[0], envArgs[1]})
} }
} }
...@@ -295,6 +306,9 @@ type Rule struct { ...@@ -295,6 +306,9 @@ type Rule struct {
// If the URL does not indicate a file, an index file with this name will be assumed. // If the URL does not indicate a file, an index file with this name will be assumed.
IndexFile string IndexFile string
// Environment Variables
EnvVars [][2]string
} }
var headerNameReplacer = strings.NewReplacer(" ", "_", "-", "_") var headerNameReplacer = strings.NewReplacer(" ", "_", "-", "_")
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment