mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-25 10:18:59 +02:00
refactor(real_ip): move header check before everything else
This commit is contained in:
@@ -59,6 +59,17 @@ func (ri *realIP) isInCIDRList(ip net.IP) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ri *realIP) setRealIP(req *http.Request) {
|
func (ri *realIP) setRealIP(req *http.Request) {
|
||||||
|
// skip first if header is not present
|
||||||
|
realIPs := req.Header.Values(ri.Header)
|
||||||
|
if len(realIPs) == 0 {
|
||||||
|
// try non-canonical key
|
||||||
|
realIPs = req.Header[ri.Header]
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(realIPs) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
clientIPStr, _, err := net.SplitHostPort(req.RemoteAddr)
|
clientIPStr, _, err := net.SplitHostPort(req.RemoteAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
clientIPStr = req.RemoteAddr
|
clientIPStr = req.RemoteAddr
|
||||||
@@ -77,18 +88,8 @@ func (ri *realIP) setRealIP(req *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
realIPs := req.Header.Values(ri.Header)
|
|
||||||
lastNonTrustedIP := ""
|
lastNonTrustedIP := ""
|
||||||
|
|
||||||
if len(realIPs) == 0 {
|
|
||||||
// try non-canonical key
|
|
||||||
realIPs = req.Header[ri.Header]
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(realIPs) == 0 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if !ri.Recursive {
|
if !ri.Recursive {
|
||||||
lastNonTrustedIP = realIPs[len(realIPs)-1]
|
lastNonTrustedIP = realIPs[len(realIPs)-1]
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user