From 27ecc7f384bbfc98b28dc73881968897fb8c9a8a Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 3 Apr 2019 11:47:27 -0400 Subject: Protocol and Caddyscript matchers * Added matcher to determine what protocol the request is being made by - grpc, tls, http * Added ability to run caddyscript in a matcher to evaluate the http request * Added TLS field to caddyscript request time * Added a library to manipulate and compare a new caddyscript time type * Library for regex in starlark --- internal/caddyscript/matcherenv.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 internal/caddyscript/matcherenv.go (limited to 'internal/caddyscript/matcherenv.go') diff --git a/internal/caddyscript/matcherenv.go b/internal/caddyscript/matcherenv.go new file mode 100644 index 0000000..c6c8c0e --- /dev/null +++ b/internal/caddyscript/matcherenv.go @@ -0,0 +1,18 @@ +package caddyscript + +import ( + "net/http" + + caddyscript "bitbucket.org/lightcodelabs/caddy2/internal/caddyscript/lib" + "go.starlark.net/starlark" +) + +// MatcherEnv sets up the global context for the matcher caddyscript environment. +func MatcherEnv(r *http.Request) starlark.StringDict { + env := make(starlark.StringDict) + env["req"] = caddyscript.HTTPRequest{Req: r} + env["time"] = caddyscript.Time{} + env["regexp"] = caddyscript.Regexp{} + + return env +} -- cgit v1.2.3