Add support for kTLS

Reference: https://gitlab.com/go-extension/tls
This commit is contained in:
世界
2025-09-07 21:03:32 +08:00
parent f84129ca79
commit 107f92381b
59 changed files with 2682 additions and 222 deletions

View File

@@ -13,6 +13,7 @@ import (
"github.com/sagernet/sing-vmess"
E "github.com/sagernet/sing/common/exceptions"
"github.com/sagernet/sing/common/json/badoption"
"github.com/sagernet/sing/common/logger"
M "github.com/sagernet/sing/common/metadata"
N "github.com/sagernet/sing/common/network"
)
@@ -55,7 +56,7 @@ func newV2RayPlugin(ctx context.Context, pluginOpts Args, router adapter.Router,
var tlsClient tls.Config
var err error
if tlsOptions.Enabled {
tlsClient, err = tls.NewClient(ctx, serverAddr.AddrString(), tlsOptions)
tlsClient, err = tls.NewClient(ctx, logger.NOP(), serverAddr.AddrString(), tlsOptions)
if err != nil {
return nil, err
}

View File

@@ -83,6 +83,14 @@ func (c *ClientConn) Upstream() any {
return c.ExtendedConn
}
func (c *ClientConn) ReaderReplaceable() bool {
return c.headerWritten
}
func (c *ClientConn) WriterReplaceable() bool {
return c.headerWritten
}
type ClientPacketConn struct {
net.Conn
access sync.Mutex