From fe36d26b63b6398592e46604d1795f84ce0477d4 Mon Sep 17 00:00:00 2001 From: Pascal Date: Thu, 10 Oct 2019 21:37:08 +0200 Subject: caddyhttp: Add RemoteAddr placeholders (#2801) * Ignore build artifacts * Add RemoteAddr placeholders --- modules/caddyhttp/replacer.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'modules/caddyhttp/replacer.go') diff --git a/modules/caddyhttp/replacer.go b/modules/caddyhttp/replacer.go index e003259..d4baa3f 100644 --- a/modules/caddyhttp/replacer.go +++ b/modules/caddyhttp/replacer.go @@ -65,13 +65,24 @@ func addHTTPVarsToReplacer(repl caddy.Replacer, req *http.Request, w http.Respon return req.Host, true // OK; there probably was no port } return host, true + case "http.request.port": + _, port, _ := net.SplitHostPort(req.Host) + return port, true case "http.request.hostport": return req.Host, true + case "http.request.remote": + return req.RemoteAddr, true + case "http.request.remote.host": + host, _, err := net.SplitHostPort(req.RemoteAddr) + if err != nil { + return req.RemoteAddr, true + } + return host, true + case "http.request.remote.port": + _, port, _ := net.SplitHostPort(req.RemoteAddr) + return port, true case "http.request.method": return req.Method, true - case "http.request.port": - _, port, _ := net.SplitHostPort(req.Host) - return port, true case "http.request.scheme": if req.TLS != nil { return "https", true -- cgit v1.2.3