diff --git a/listener/anytls/server.go b/listener/anytls/server.go index ae6af171..ccbc47a2 100644 --- a/listener/anytls/server.go +++ b/listener/anytls/server.go @@ -7,9 +7,9 @@ import ( "errors" "net" "strings" + "sync/atomic" "github.com/metacubex/mihomo/adapter/inbound" - "github.com/metacubex/mihomo/common/atomic" "github.com/metacubex/mihomo/common/buf" "github.com/metacubex/mihomo/component/ca" "github.com/metacubex/mihomo/component/ech" @@ -31,7 +31,7 @@ type Listener struct { listeners []net.Listener tlsConfig *tlsC.Config userMap map[[32]byte]string - padding atomic.TypedValue[*padding.PaddingFactory] + padding atomic.Pointer[padding.PaddingFactory] } func New(config LC.AnyTLSServer, tunnel C.Tunnel, additions ...inbound.Addition) (sl *Listener, err error) { diff --git a/transport/anytls/client.go b/transport/anytls/client.go index 44633ae3..4e74c927 100644 --- a/transport/anytls/client.go +++ b/transport/anytls/client.go @@ -5,9 +5,9 @@ import ( "crypto/sha256" "encoding/binary" "net" + "sync/atomic" "time" - "github.com/metacubex/mihomo/common/atomic" "github.com/metacubex/mihomo/common/buf" "github.com/metacubex/mihomo/transport/anytls/padding" "github.com/metacubex/mihomo/transport/anytls/session" @@ -33,7 +33,7 @@ type Client struct { dialer N.Dialer server M.Socksaddr sessionClient *session.Client - padding atomic.TypedValue[*padding.PaddingFactory] + padding atomic.Pointer[padding.PaddingFactory] } func NewClient(ctx context.Context, config ClientConfig) *Client { diff --git a/transport/anytls/padding/padding.go b/transport/anytls/padding/padding.go index 498feb05..76b3c0ef 100644 --- a/transport/anytls/padding/padding.go +++ b/transport/anytls/padding/padding.go @@ -7,8 +7,8 @@ import ( "math/big" "strconv" "strings" + "sync/atomic" - "github.com/metacubex/mihomo/common/atomic" "github.com/metacubex/mihomo/transport/anytls/util" ) @@ -31,7 +31,7 @@ type PaddingFactory struct { Md5 string } -func UpdatePaddingScheme(rawScheme []byte, to *atomic.TypedValue[*PaddingFactory]) bool { +func UpdatePaddingScheme(rawScheme []byte, to *atomic.Pointer[PaddingFactory]) bool { if p := NewPaddingFactory(rawScheme); p != nil { to.Store(p) return true diff --git a/transport/anytls/session/client.go b/transport/anytls/session/client.go index 50fd7b42..0698bd50 100644 --- a/transport/anytls/session/client.go +++ b/transport/anytls/session/client.go @@ -7,9 +7,9 @@ import ( "math" "net" "sync" + "sync/atomic" "time" - "github.com/metacubex/mihomo/common/atomic" "github.com/metacubex/mihomo/transport/anytls/padding" "github.com/metacubex/mihomo/transport/anytls/skiplist" "github.com/metacubex/mihomo/transport/anytls/util" @@ -29,13 +29,13 @@ type Client struct { sessions map[uint64]*Session sessionsLock sync.Mutex - padding *atomic.TypedValue[*padding.PaddingFactory] + padding *atomic.Pointer[padding.PaddingFactory] idleSessionTimeout time.Duration minIdleSession int } -func NewClient(ctx context.Context, dialOut util.DialOutFunc, _padding *atomic.TypedValue[*padding.PaddingFactory], idleSessionCheckInterval, idleSessionTimeout time.Duration, minIdleSession int) *Client { +func NewClient(ctx context.Context, dialOut util.DialOutFunc, _padding *atomic.Pointer[padding.PaddingFactory], idleSessionCheckInterval, idleSessionTimeout time.Duration, minIdleSession int) *Client { c := &Client{ sessions: make(map[uint64]*Session), dialOut: dialOut, diff --git a/transport/anytls/session/session.go b/transport/anytls/session/session.go index c80639ce..23c3a087 100644 --- a/transport/anytls/session/session.go +++ b/transport/anytls/session/session.go @@ -9,9 +9,9 @@ import ( "runtime/debug" "strconv" "sync" + "sync/atomic" "time" - "github.com/metacubex/mihomo/common/atomic" "github.com/metacubex/mihomo/common/buf" "github.com/metacubex/mihomo/common/pool" "github.com/metacubex/mihomo/constant" @@ -38,7 +38,7 @@ type Session struct { // pool seq uint64 idleSince time.Time - padding *atomic.TypedValue[*padding.PaddingFactory] + padding *atomic.Pointer[padding.PaddingFactory] peerVersion byte @@ -53,7 +53,7 @@ type Session struct { onNewStream func(stream *Stream) } -func NewClientSession(conn net.Conn, _padding *atomic.TypedValue[*padding.PaddingFactory]) *Session { +func NewClientSession(conn net.Conn, _padding *atomic.Pointer[padding.PaddingFactory]) *Session { s := &Session{ conn: conn, isClient: true, @@ -65,7 +65,7 @@ func NewClientSession(conn net.Conn, _padding *atomic.TypedValue[*padding.Paddin return s } -func NewServerSession(conn net.Conn, onNewStream func(stream *Stream), _padding *atomic.TypedValue[*padding.PaddingFactory]) *Session { +func NewServerSession(conn net.Conn, onNewStream func(stream *Stream), _padding *atomic.Pointer[padding.PaddingFactory]) *Session { s := &Session{ conn: conn, onNewStream: onNewStream,