From 2a14c50775a8f23da728cdd1c4454d29c83af511 Mon Sep 17 00:00:00 2001 From: IvanTopGaming <85171599+IvanTopGaming@users.noreply.github.com> Date: Thu, 8 Oct 2026 12:21:21 +0300 Subject: [PATCH] Socks inbound: Fix stats for UDP Associate traffic (#7101) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/XTLS/Xray-core/pull/7101#pullrequestreview-5452526703 --------- Co-authored-by: 风扇滑翔翼 --- proxy/socks/server.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/proxy/socks/server.go b/proxy/socks/server.go index e1d34a60b..d68e5c433 100644 --- a/proxy/socks/server.go +++ b/proxy/socks/server.go @@ -170,9 +170,17 @@ func (s *Server) processTCP(ctx context.Context, conn stat.Connection, dispatche return errors.New("UDP associate with listen port failed") } tempUDPConn.SetTimeout(plcy.Timeouts.ConnectionIdle) + var udpConn stat.Connection = tempUDPConn + if counters, ok := conn.(*stat.CounterConnection); ok { + udpConn = &stat.CounterConnection{ + Connection: tempUDPConn, + ReadCounter: counters.ReadCounter, + WriteCounter: counters.WriteCounter, + } + } errCh := make(chan error, 1) go func() { - errCh <- s.handleUDPPayload(ctx, tempUDPConn, dispatcher) + errCh <- s.handleUDPPayload(ctx, udpConn, dispatcher) }() // Associated TCP keeps the UDP alive // Close UDP if TCP connection is closed