浏览代码

Add back sleep for freedom splice

yuhan6665 1 年之前
父节点
当前提交
09656bd5d1
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      proxy/proxy.go

+ 3 - 1
proxy/proxy.go

@@ -13,6 +13,7 @@ import (
 	"math/big"
 	"runtime"
 	"strconv"
+	"time"
 
 	"github.com/pires/go-proxyproto"
 	"github.com/xtls/xray-core/common/buf"
@@ -477,7 +478,8 @@ func CopyRawConnIfExist(ctx context.Context, readerConn net.Conn, writerConn net
 			for inbound.CanSpliceCopy != 3 {
 				if inbound.CanSpliceCopy == 1 {
 					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)
 					if readCounter != nil {
 						readCounter.Add(w)