mirror of
https://github.com/XTLS/Xray-core.git
synced 2024-11-22 12:49:20 +02:00
parent
3f3b54f673
commit
5e606169f1
|
@ -5,9 +5,11 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
|
"google.golang.org/grpc/metadata"
|
||||||
"google.golang.org/grpc/peer"
|
"google.golang.org/grpc/peer"
|
||||||
|
|
||||||
"github.com/xtls/xray-core/common/buf"
|
"github.com/xtls/xray-core/common/buf"
|
||||||
|
xnet "github.com/xtls/xray-core/common/net"
|
||||||
"github.com/xtls/xray-core/common/net/cnc"
|
"github.com/xtls/xray-core/common/net/cnc"
|
||||||
"github.com/xtls/xray-core/common/signal/done"
|
"github.com/xtls/xray-core/common/signal/done"
|
||||||
)
|
)
|
||||||
|
@ -49,6 +51,19 @@ func NewHunkConn(hc HunkConn, cancel context.CancelFunc) net.Conn {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
md, ok := metadata.FromIncomingContext(hc.Context())
|
||||||
|
if ok {
|
||||||
|
header := md.Get("x-real-ip")
|
||||||
|
if len(header) > 0 {
|
||||||
|
realip := xnet.ParseAddress(header[0])
|
||||||
|
if realip.Family().IsIP() {
|
||||||
|
rAddr = &net.TCPAddr{
|
||||||
|
IP: realip.IP(),
|
||||||
|
Port: 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
wrc := NewHunkReadWriter(hc, cancel)
|
wrc := NewHunkReadWriter(hc, cancel)
|
||||||
return cnc.NewConnection(
|
return cnc.NewConnection(
|
||||||
cnc.ConnectionInput(wrc),
|
cnc.ConnectionInput(wrc),
|
||||||
|
|
|
@ -5,9 +5,11 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
|
"google.golang.org/grpc/metadata"
|
||||||
"google.golang.org/grpc/peer"
|
"google.golang.org/grpc/peer"
|
||||||
|
|
||||||
"github.com/xtls/xray-core/common/buf"
|
"github.com/xtls/xray-core/common/buf"
|
||||||
|
xnet "github.com/xtls/xray-core/common/net"
|
||||||
"github.com/xtls/xray-core/common/net/cnc"
|
"github.com/xtls/xray-core/common/net/cnc"
|
||||||
"github.com/xtls/xray-core/common/signal/done"
|
"github.com/xtls/xray-core/common/signal/done"
|
||||||
)
|
)
|
||||||
|
@ -44,6 +46,19 @@ func NewMultiHunkConn(hc MultiHunkConn, cancel context.CancelFunc) net.Conn {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
md, ok := metadata.FromIncomingContext(hc.Context())
|
||||||
|
if ok {
|
||||||
|
header := md.Get("x-real-ip")
|
||||||
|
if len(header) > 0 {
|
||||||
|
realip := xnet.ParseAddress(header[0])
|
||||||
|
if realip.Family().IsIP() {
|
||||||
|
rAddr = &net.TCPAddr{
|
||||||
|
IP: realip.IP(),
|
||||||
|
Port: 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
wrc := NewMultiHunkReadWriter(hc, cancel)
|
wrc := NewMultiHunkReadWriter(hc, cancel)
|
||||||
return cnc.NewConnection(
|
return cnc.NewConnection(
|
||||||
cnc.ConnectionInputMulti(wrc),
|
cnc.ConnectionInputMulti(wrc),
|
||||||
|
|
Loading…
Reference in New Issue