From 5508cd65a79812e5352fda83eb0eb7ab1d9c7db5 Mon Sep 17 00:00:00 2001 From: samosvalishe Date: Tue, 22 Sep 2026 00:02:41 +0300 Subject: [PATCH] =?UTF-8?q?fix(udp):=20=D0=BE=D0=B3=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=87=D0=B8=D1=82=D1=8C=20=D0=BE=D1=87=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D1=8C=20=D0=BC=D0=B5=D0=B6=D0=B4=D1=83=20=D1=81=D0=BE?= =?UTF-8?q?=D0=BA=D0=B5=D1=82=D0=BE=D0=BC=20=D0=B8=20DTLS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/proxy/udprelay/loop.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/proxy/udprelay/loop.go b/internal/proxy/udprelay/loop.go index 1761e40..478bee9 100644 --- a/internal/proxy/udprelay/loop.go +++ b/internal/proxy/udprelay/loop.go @@ -25,6 +25,8 @@ var errPairRecycled = errors.New("udprelay: stream pair recycled") const ( quotaBackoff = 15 * time.Second quotaBackoffJitter = 15 * time.Second + + pipeBufLimit = 256 << 10 ) // streamPair связывает DTLS-сессию с аллокацией, поверх которой она поднята. Смерть @@ -151,7 +153,7 @@ func dtlsSession(dtlsctx context.Context, dtlscancel context.CancelFunc, deps *D return dtlsctx.Err() } - conn1, conn2 := connutil.AsyncPacketPipe() + conn1, conn2 := connutil.LimitedAsyncPacketPipe(pipeBufLimit) defer func() { _ = conn1.Close() }() defer func() { _ = conn2.Close() }() // Ровно один раз: пара строго 1:1, иначе следующая аллокация села бы на DTLS, который