package middleware import ( "net" "strings" gphttp "github.com/yusing/go-proxy/internal/net/http" ) var SetXForwarded = &Middleware{ before: Rewrite(func(req *Request) { req.Header.Del(gphttp.HeaderXForwardedFor) clientIP, _, err := net.SplitHostPort(req.RemoteAddr) if err == nil { req.Header.Set(gphttp.HeaderXForwardedFor, clientIP) } }), } var HideXForwarded = &Middleware{ before: Rewrite(func(req *Request) { for k := range req.Header { if strings.HasPrefix(k, "X-Forwarded-") { req.Header.Del(k) } } }), }