fix: only try to split host/port for RemoteAddr

This commit is contained in:
Evan Buss
2024-08-10 21:52:53 +00:00
parent 6c41117af1
commit 041d8d5e22

View File

@@ -91,13 +91,12 @@ func requestMiddleware(next http.Handler) http.Handler {
id := uuid.New() id := uuid.New()
requestIP := r.Header.Get("X-Forwarded-For") requestIP := r.Header.Get("X-Forwarded-For")
if requestIP == "" { if requestIP == "" {
requestIP = r.RemoteAddr requestIP, _, _ = net.SplitHostPort(r.RemoteAddr)
} }
isLocal := true isLocal := true
for _, addr := range strings.Split(requestIP, ", ") { for _, addr := range strings.Split(requestIP, ", ") {
host, _, _ := net.SplitHostPort(addr) ip := net.ParseIP(addr)
ip := net.ParseIP(host)
if ip == nil || (!ip.IsPrivate() && !ip.IsLoopback()) { if ip == nil || (!ip.IsPrivate() && !ip.IsLoopback()) {
isLocal = false isLocal = false
break break