mirror of https://github.com/XTLS/Xray-core
header
parent
83c5370eec
commit
9d91c185a6
|
@ -9,7 +9,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// ParseXForwardedFor parses X-Forwarded-For header in http headers, and return the IP list in it.
|
// ParseXForwardedFor parses X-Forwarded-For header in http headers, and return the IP list in it.
|
||||||
func ParseXForwardedFor(header http.Header) []net.Address {
|
func parseXForwardedFor(header http.Header) []net.Address {
|
||||||
xff := header.Get("X-Forwarded-For")
|
xff := header.Get("X-Forwarded-For")
|
||||||
if xff == "" {
|
if xff == "" {
|
||||||
return nil
|
return nil
|
||||||
|
@ -22,6 +22,22 @@ func ParseXForwardedFor(header http.Header) []net.Address {
|
||||||
return addrs
|
return addrs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func parseCFConnectingIP(header http.Header) []net.Address {
|
||||||
|
value := header.Get("CF-Connecting-IP")
|
||||||
|
if value == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return []net.Address{net.ParseAddress(value)}
|
||||||
|
}
|
||||||
|
|
||||||
|
func ParseXForwardedFor(header http.Header) []net.Address {
|
||||||
|
addrs := parseXForwardedFor(header)
|
||||||
|
if len(addrs) == 0 {
|
||||||
|
addrs = parseCFConnectingIP(header)
|
||||||
|
}
|
||||||
|
return addrs
|
||||||
|
}
|
||||||
|
|
||||||
// RemoveHopByHopHeaders removes hop by hop headers in http header list.
|
// RemoveHopByHopHeaders removes hop by hop headers in http header list.
|
||||||
func RemoveHopByHopHeaders(header http.Header) {
|
func RemoveHopByHopHeaders(header http.Header) {
|
||||||
// Strip hop-by-hop header based on RFC:
|
// Strip hop-by-hop header based on RFC:
|
||||||
|
|
Loading…
Reference in New Issue