Skip to content

Commit

Permalink
skip to set realip when the realip is empty
Browse files Browse the repository at this point in the history
  • Loading branch information
Songmu committed Feb 17, 2021
1 parent 90b9e7d commit fbd9287
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions realip.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,9 @@ func (c *Config) handler(next http.Handler) http.Handler {
case HeaderXForwardedFor:
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
if !trustedIP(net.ParseIP(remoteIP(req.RemoteAddr)), c.RealIPFrom) {
req.Header.Set(c.setHeader(), remoteIP(req.RemoteAddr))
if realIP := remoteIP(req.RemoteAddr); realIP != "" {
req.Header.Set(c.setHeader(), realIP)
}
} else {
realIP := realIPFromXFF(
req.Header.Get(HeaderXForwardedFor),
Expand All @@ -67,20 +69,26 @@ func (c *Config) handler(next http.Handler) http.Handler {
if realIP == "" {
realIP = remoteIP(req.RemoteAddr)
}
req.Header.Set(c.setHeader(), realIP)
if realIP != "" {
req.Header.Set(c.setHeader(), realIP)
}
}
next.ServeHTTP(w, req)
})
default:
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
if !trustedIP(net.ParseIP(remoteIP(req.RemoteAddr)), c.RealIPFrom) {
req.Header.Set(c.setHeader(), remoteIP(req.RemoteAddr))
if realIP := remoteIP(req.RemoteAddr); realIP != "" {
req.Header.Set(c.setHeader(), realIP)
}
} else {
realIP := req.Header.Get(c.realIPHeader())
if realIP == "" {
realIP = remoteIP(req.RemoteAddr)
}
req.Header.Set(c.setHeader(), realIP)
if realIP != "" {
req.Header.Set(c.setHeader(), realIP)
}
}
next.ServeHTTP(w, req)
})
Expand Down

0 comments on commit fbd9287

Please sign in to comment.