From cd4d0baacd53e35dee78ed38bfd145a9408d4398 Mon Sep 17 00:00:00 2001 From: RPRX <63339210+RPRX@users.noreply.github.com> Date: Sat, 25 Apr 2026 23:03:19 +0000 Subject: [PATCH] Xray-core: Mark "legacy reverse" as removed to avoid confusions https://github.com/XTLS/Xray-core/issues/5973#issuecomment-4273582111 https://github.com/XTLS/Xray-core/pull/5947#issuecomment-4273415252 --- infra/conf/xray.go | 1 + proxy/freedom/freedom.go | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/infra/conf/xray.go b/infra/conf/xray.go index 9d68a7e9..d01dac2b 100644 --- a/infra/conf/xray.go +++ b/infra/conf/xray.go @@ -547,6 +547,7 @@ func (c *Config) Build() (*core.Config, error) { } if c.Reverse != nil { + return nil, errors.PrintRemovedFeatureError(`"legacy reverse"`, `"VLESS Reverse Proxy"`) r, err := c.Reverse.Build() if err != nil { return nil, errors.New("failed to build reverse configuration").Base(err) diff --git a/proxy/freedom/freedom.go b/proxy/freedom/freedom.go index bc05d04a..aeb54c9c 100644 --- a/proxy/freedom/freedom.go +++ b/proxy/freedom/freedom.go @@ -348,20 +348,19 @@ type PacketReader struct { func (r *PacketReader) ReadMultiBuffer() (buf.MultiBuffer, error) { b := buf.New() + b.Resize(0, buf.Size) for { - b.Resize(0, buf.Size) n, d, err := r.PacketConnWrapper.ReadFrom(b.Bytes()) if err != nil { b.Release() return nil, err } - b.Resize(0, int32(n)) - udpAddr := d.(*net.UDPAddr) sourceAddr := net.IPAddress(udpAddr.IP) if isBlockedAddress(r.BlockedIPMatcher, sourceAddr) { continue } + b.Resize(0, int32(n)) // if udp dest addr is changed, we are unable to get the correct src addr // so we don't attach src info to udp packet, break cone behavior, assuming the dial dest is the expected scr addr