From b863a9720f2edc573566e515b6081be938a5ab81 Mon Sep 17 00:00:00 2001 From: Toby Chui Date: Mon, 7 Apr 2025 20:02:04 +0800 Subject: [PATCH] Fixed #629 - Added $remote_ip to remote port number from remote address --- src/mod/dynamicproxy/rewrite/headervars.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mod/dynamicproxy/rewrite/headervars.go b/src/mod/dynamicproxy/rewrite/headervars.go index d57c9cc..d7bd44d 100644 --- a/src/mod/dynamicproxy/rewrite/headervars.go +++ b/src/mod/dynamicproxy/rewrite/headervars.go @@ -2,6 +2,7 @@ package rewrite import ( "fmt" + "net" "net/http" "strings" ) @@ -14,6 +15,11 @@ func GetHeaderVariableValuesFromRequest(r *http.Request) map[string]string { // Request-specific variables vars["$host"] = r.Host vars["$remote_addr"] = r.RemoteAddr + remoteIP, _, err := net.SplitHostPort(r.RemoteAddr) + if err != nil { + remoteIP = r.RemoteAddr // Fallback to the full RemoteAddr if parsing fails + } + vars["$remote_ip"] = remoteIP vars["$request_uri"] = r.RequestURI vars["$request_method"] = r.Method vars["$content_length"] = fmt.Sprintf("%d", r.ContentLength)