Try to fix rare ssl error with freedom splice

This commit is contained in:
yuhan6665 2024-01-26 02:14:26 -05:00
parent 25c531c6c3
commit 3167a70ff8

View file

@ -13,6 +13,7 @@ import (
"math/big" "math/big"
"runtime" "runtime"
"strconv" "strconv"
"time"
"github.com/pires/go-proxyproto" "github.com/pires/go-proxyproto"
"github.com/xtls/xray-core/common/buf" "github.com/xtls/xray-core/common/buf"
@ -478,6 +479,7 @@ func CopyRawConnIfExist(ctx context.Context, readerConn net.Conn, writerConn net
if inbound.CanSpliceCopy == 1 { if inbound.CanSpliceCopy == 1 {
newError("CopyRawConn splice").WriteToLog(session.ExportIDToError(ctx)) newError("CopyRawConn splice").WriteToLog(session.ExportIDToError(ctx))
runtime.Gosched() // necessary runtime.Gosched() // necessary
time.Sleep(time.Millisecond) // without this, there will be a rare ssl error for freedom splice
w, err := tc.ReadFrom(readerConn) w, err := tc.ReadFrom(readerConn)
if readCounter != nil { if readCounter != nil {
readCounter.Add(w) readCounter.Add(w)