From 521a9f2bca96c92acb72e5c22632d3b9878d0b8e Mon Sep 17 00:00:00 2001 From: Fangliding Date: Sun, 6 Sep 2026 23:14:19 +0800 Subject: [PATCH] Do not send zero length record --- transport/internet/finalmask/fragment/conn.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/transport/internet/finalmask/fragment/conn.go b/transport/internet/finalmask/fragment/conn.go index 3c65a8bd5..a58ad0638 100644 --- a/transport/internet/finalmask/fragment/conn.go +++ b/transport/internet/finalmask/fragment/conn.go @@ -90,6 +90,17 @@ func (c *fragmentConn) Write(p []byte) (n int, err error) { to = len(data) } l := to - from + // if l is 0, don't send empty tls record(will break the connection) but still sleep + if l == 0 { + if !mergeHello { + delayMin, delayMax := c.delayForSegment(int(splitNum)) + if delayMax > 0 { + time.Sleep(time.Duration(crypto.RandBetween(delayMin, delayMax)) * time.Millisecond) + } + } + splitNum++ + continue + } if 5+l > len(buff) { buff = make([]byte, 5+l) }