Browse Source

Fix some tests and format code (#830)

* Increase some tls test timeout

* Fix TestUserValidator

* Change all tests to VMessAEAD

Old VMess MD5 tests will be rejected and fail in 2022

* Chore: auto format code
yuhan6665 4 years ago
parent
commit
e93da4bd02
77 changed files with 136 additions and 233 deletions
  1. 1 1
      app/dispatcher/default.go
  2. 1 0
      app/dns/dns_test.go
  3. 1 2
      app/dns/fakedns/fakedns_test.go
  4. 1 0
      app/dns/hosts_test.go
  5. 1 2
      app/dns/nameserver_local.go
  6. 1 2
      app/dns/nameserver_local_test.go
  7. 3 2
      app/dns/nameserver_quic.go
  8. 1 2
      app/dns/nameserver_quic_test.go
  9. 1 1
      app/log/log_creator.go
  10. 2 1
      app/observatory/command/command.go
  11. 1 1
      app/observatory/observer.go
  12. 1 2
      app/proxyman/inbound/worker.go
  13. 1 2
      app/proxyman/outbound/handler.go
  14. 1 2
      app/proxyman/outbound/handler_test.go
  15. 1 2
      app/router/router_test.go
  16. 1 1
      app/router/strategy_leastping.go
  17. 1 2
      common/buf/readv_reader.go
  18. 0 1
      common/buf/readv_test.go
  19. 1 2
      common/buf/writer.go
  20. 1 0
      infra/conf/blackhole.go
  21. 1 2
      infra/conf/common_test.go
  22. 4 4
      infra/conf/fakedns.go
  23. 4 9
      infra/conf/vmess_test.go
  24. 1 2
      infra/conf/xray.go
  25. 2 6
      infra/conf/xray_test.go
  26. 1 2
      proxy/dns/dns.go
  27. 1 2
      proxy/dokodemo/dokodemo.go
  28. 1 2
      proxy/freedom/freedom.go
  29. 1 2
      proxy/http/client.go
  30. 1 2
      proxy/http/server.go
  31. 1 1
      proxy/loopback/loopback.go
  32. 1 2
      proxy/mtproto/server.go
  33. 1 2
      proxy/proxy.go
  34. 1 2
      proxy/shadowsocks/client.go
  35. 1 2
      proxy/shadowsocks/server.go
  36. 1 2
      proxy/socks/client.go
  37. 1 2
      proxy/socks/server.go
  38. 1 2
      proxy/trojan/client.go
  39. 1 2
      proxy/trojan/protocol.go
  40. 1 2
      proxy/trojan/server.go
  41. 1 2
      proxy/vless/encoding/encoding.go
  42. 1 2
      proxy/vless/inbound/inbound.go
  43. 1 2
      proxy/vless/outbound/outbound.go
  44. 2 3
      proxy/vmess/encoding/auth.go
  45. 3 6
      proxy/vmess/encoding/encoding_test.go
  46. 1 2
      proxy/vmess/inbound/inbound.go
  47. 1 2
      proxy/vmess/outbound/outbound.go
  48. 5 0
      proxy/vmess/validator.go
  49. 7 10
      proxy/vmess/validator_test.go
  50. 5 10
      testing/scenarios/command_test.go
  51. 2 4
      testing/scenarios/feature_test.go
  52. 4 8
      testing/scenarios/policy_test.go
  53. 4 8
      testing/scenarios/reverse_test.go
  54. 4 4
      testing/scenarios/tls_test.go
  55. 2 4
      testing/scenarios/transport_test.go
  56. 22 44
      testing/scenarios/vmess_test.go
  57. 1 2
      transport/internet/dialer.go
  58. 1 2
      transport/internet/domainsocket/dial.go
  59. 1 2
      transport/internet/domainsocket/listener.go
  60. 1 2
      transport/internet/domainsocket/listener_test.go
  61. 1 2
      transport/internet/http/dialer.go
  62. 1 2
      transport/internet/http/http_test.go
  63. 1 2
      transport/internet/kcp/dialer.go
  64. 1 2
      transport/internet/kcp/kcp_test.go
  65. 1 2
      transport/internet/kcp/listener.go
  66. 1 2
      transport/internet/kcp/output.go
  67. 1 2
      transport/internet/quic/dialer.go
  68. 1 2
      transport/internet/quic/quic_test.go
  69. 2 2
      transport/internet/tagged/taggedimpl/impl.go
  70. 1 2
      transport/internet/tcp/dialer.go
  71. 1 2
      transport/internet/tcp/hub.go
  72. 1 2
      transport/internet/tcp/sockopt_linux.go
  73. 1 2
      transport/internet/tcp_hub.go
  74. 1 2
      transport/internet/udp/dialer.go
  75. 1 2
      transport/internet/udp/dispatcher.go
  76. 1 2
      transport/internet/websocket/dialer.go
  77. 1 2
      transport/internet/websocket/ws_test.go

+ 1 - 1
app/dispatcher/default.go

@@ -4,7 +4,6 @@ package dispatcher
 
 
 import (
 import (
 	"context"
 	"context"
-	"github.com/xtls/xray-core/features/dns"
 	"strings"
 	"strings"
 	"sync"
 	"sync"
 	"time"
 	"time"
@@ -16,6 +15,7 @@ import (
 	"github.com/xtls/xray-core/common/protocol"
 	"github.com/xtls/xray-core/common/protocol"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/core"
+	"github.com/xtls/xray-core/features/dns"
 	"github.com/xtls/xray-core/features/outbound"
 	"github.com/xtls/xray-core/features/outbound"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"

+ 1 - 0
app/dns/dns_test.go

@@ -6,6 +6,7 @@ import (
 
 
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp"
 	"github.com/miekg/dns"
 	"github.com/miekg/dns"
+
 	"github.com/xtls/xray-core/app/dispatcher"
 	"github.com/xtls/xray-core/app/dispatcher"
 	. "github.com/xtls/xray-core/app/dns"
 	. "github.com/xtls/xray-core/app/dns"
 	"github.com/xtls/xray-core/app/policy"
 	"github.com/xtls/xray-core/app/policy"

+ 1 - 2
app/dns/fakedns/fakedns_test.go

@@ -1,9 +1,8 @@
 package fakedns
 package fakedns
 
 
 import (
 import (
-	"testing"
-
 	gonet "net"
 	gonet "net"
+	"testing"
 
 
 	"github.com/stretchr/testify/assert"
 	"github.com/stretchr/testify/assert"
 
 

+ 1 - 0
app/dns/hosts_test.go

@@ -4,6 +4,7 @@ import (
 	"testing"
 	"testing"
 
 
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp"
+
 	. "github.com/xtls/xray-core/app/dns"
 	. "github.com/xtls/xray-core/app/dns"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"

+ 1 - 2
app/dns/nameserver_local.go

@@ -4,9 +4,8 @@ import (
 	"context"
 	"context"
 	"strings"
 	"strings"
 
 
-	"github.com/xtls/xray-core/features/dns"
-
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
+	"github.com/xtls/xray-core/features/dns"
 	"github.com/xtls/xray-core/features/dns/localdns"
 	"github.com/xtls/xray-core/features/dns/localdns"
 )
 )
 
 

+ 1 - 2
app/dns/nameserver_local_test.go

@@ -5,10 +5,9 @@ import (
 	"testing"
 	"testing"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/common/net"
-
 	. "github.com/xtls/xray-core/app/dns"
 	. "github.com/xtls/xray-core/app/dns"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
+	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/features/dns"
 	"github.com/xtls/xray-core/features/dns"
 )
 )
 
 

+ 3 - 2
app/dns/nameserver_quic.go

@@ -8,6 +8,9 @@ import (
 	"time"
 	"time"
 
 
 	"github.com/lucas-clemente/quic-go"
 	"github.com/lucas-clemente/quic-go"
+	"golang.org/x/net/dns/dnsmessage"
+	"golang.org/x/net/http2"
+
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
@@ -17,8 +20,6 @@ import (
 	"github.com/xtls/xray-core/common/task"
 	"github.com/xtls/xray-core/common/task"
 	dns_feature "github.com/xtls/xray-core/features/dns"
 	dns_feature "github.com/xtls/xray-core/features/dns"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
-	"golang.org/x/net/dns/dnsmessage"
-	"golang.org/x/net/http2"
 )
 )
 
 
 // NextProtoDQ - During connection establishment, DNS/QUIC support is indicated
 // NextProtoDQ - During connection establishment, DNS/QUIC support is indicated

+ 1 - 2
app/dns/nameserver_quic_test.go

@@ -6,13 +6,12 @@ import (
 	"testing"
 	"testing"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/features/dns"
-
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp"
 
 
 	. "github.com/xtls/xray-core/app/dns"
 	. "github.com/xtls/xray-core/app/dns"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
+	"github.com/xtls/xray-core/features/dns"
 )
 )
 
 
 func TestQUICNameServer(t *testing.T) {
 func TestQUICNameServer(t *testing.T) {

+ 1 - 1
app/log/log_creator.go

@@ -2,7 +2,7 @@ package log
 
 
 import (
 import (
 	"sync"
 	"sync"
-	
+
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/log"
 	"github.com/xtls/xray-core/common/log"
 )
 )

+ 2 - 1
app/observatory/command/command.go

@@ -1,3 +1,4 @@
+//go:build !confonly
 // +build !confonly
 // +build !confonly
 
 
 package command
 package command
@@ -7,9 +8,9 @@ import (
 
 
 	"google.golang.org/grpc"
 	"google.golang.org/grpc"
 
 
-	core "github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/app/observatory"
 	"github.com/xtls/xray-core/app/observatory"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
+	core "github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/features/extension"
 	"github.com/xtls/xray-core/features/extension"
 )
 )
 
 

+ 1 - 1
app/observatory/observer.go

@@ -2,7 +2,6 @@ package observatory
 
 
 import (
 import (
 	"context"
 	"context"
-	"github.com/xtls/xray-core/core"
 	"net"
 	"net"
 	"net/http"
 	"net/http"
 	"net/url"
 	"net/url"
@@ -17,6 +16,7 @@ import (
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/signal/done"
 	"github.com/xtls/xray-core/common/signal/done"
 	"github.com/xtls/xray-core/common/task"
 	"github.com/xtls/xray-core/common/task"
+	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/features/extension"
 	"github.com/xtls/xray-core/features/extension"
 	"github.com/xtls/xray-core/features/outbound"
 	"github.com/xtls/xray-core/features/outbound"
 	"github.com/xtls/xray-core/transport/internet/tagged"
 	"github.com/xtls/xray-core/transport/internet/tagged"

+ 1 - 2
app/proxyman/inbound/worker.go

@@ -6,8 +6,6 @@ import (
 	"sync/atomic"
 	"sync/atomic"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/app/proxyman"
 	"github.com/xtls/xray-core/app/proxyman"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
@@ -20,6 +18,7 @@ import (
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/proxy"
 	"github.com/xtls/xray-core/proxy"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tcp"
 	"github.com/xtls/xray-core/transport/internet/tcp"
 	"github.com/xtls/xray-core/transport/internet/udp"
 	"github.com/xtls/xray-core/transport/internet/udp"
 	"github.com/xtls/xray-core/transport/pipe"
 	"github.com/xtls/xray-core/transport/pipe"

+ 1 - 2
app/proxyman/outbound/handler.go

@@ -3,8 +3,6 @@ package outbound
 import (
 import (
 	"context"
 	"context"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/app/proxyman"
 	"github.com/xtls/xray-core/app/proxyman"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/mux"
 	"github.com/xtls/xray-core/common/mux"
@@ -18,6 +16,7 @@ import (
 	"github.com/xtls/xray-core/proxy"
 	"github.com/xtls/xray-core/proxy"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/pipe"
 	"github.com/xtls/xray-core/transport/pipe"
 )
 )

+ 1 - 2
app/proxyman/outbound/handler_test.go

@@ -4,8 +4,6 @@ import (
 	"context"
 	"context"
 	"testing"
 	"testing"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/app/policy"
 	"github.com/xtls/xray-core/app/policy"
 	. "github.com/xtls/xray-core/app/proxyman/outbound"
 	. "github.com/xtls/xray-core/app/proxyman/outbound"
 	"github.com/xtls/xray-core/app/stats"
 	"github.com/xtls/xray-core/app/stats"
@@ -14,6 +12,7 @@ import (
 	core "github.com/xtls/xray-core/core"
 	core "github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/features/outbound"
 	"github.com/xtls/xray-core/features/outbound"
 	"github.com/xtls/xray-core/proxy/freedom"
 	"github.com/xtls/xray-core/proxy/freedom"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 func TestInterfaces(t *testing.T) {
 func TestInterfaces(t *testing.T) {

+ 1 - 2
app/router/router_test.go

@@ -4,14 +4,13 @@ import (
 	"context"
 	"context"
 	"testing"
 	"testing"
 
 
-	"github.com/xtls/xray-core/features/dns"
-
 	"github.com/golang/mock/gomock"
 	"github.com/golang/mock/gomock"
 
 
 	. "github.com/xtls/xray-core/app/router"
 	. "github.com/xtls/xray-core/app/router"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
+	"github.com/xtls/xray-core/features/dns"
 	"github.com/xtls/xray-core/features/outbound"
 	"github.com/xtls/xray-core/features/outbound"
 	routing_session "github.com/xtls/xray-core/features/routing/session"
 	routing_session "github.com/xtls/xray-core/features/routing/session"
 	"github.com/xtls/xray-core/testing/mocks"
 	"github.com/xtls/xray-core/testing/mocks"

+ 1 - 1
app/router/strategy_leastping.go

@@ -2,10 +2,10 @@ package router
 
 
 import (
 import (
 	"context"
 	"context"
-	"github.com/xtls/xray-core/core"
 
 
 	"github.com/xtls/xray-core/app/observatory"
 	"github.com/xtls/xray-core/app/observatory"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
+	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/features/extension"
 	"github.com/xtls/xray-core/features/extension"
 )
 )
 
 

+ 1 - 2
common/buf/readv_reader.go

@@ -7,9 +7,8 @@ import (
 	"io"
 	"io"
 	"syscall"
 	"syscall"
 
 
-	"github.com/xtls/xray-core/features/stats"
-
 	"github.com/xtls/xray-core/common/platform"
 	"github.com/xtls/xray-core/common/platform"
+	"github.com/xtls/xray-core/features/stats"
 )
 )
 
 
 type allocStrategy struct {
 type allocStrategy struct {

+ 0 - 1
common/buf/readv_test.go

@@ -9,7 +9,6 @@ import (
 	"testing"
 	"testing"
 
 
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp"
-
 	"golang.org/x/sync/errgroup"
 	"golang.org/x/sync/errgroup"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"

+ 1 - 2
common/buf/writer.go

@@ -5,10 +5,9 @@ import (
 	"net"
 	"net"
 	"sync"
 	"sync"
 
 
-	"github.com/xtls/xray-core/features/stats"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/errors"
 	"github.com/xtls/xray-core/common/errors"
+	"github.com/xtls/xray-core/features/stats"
 )
 )
 
 
 // BufferToBytesWriter is a Writer that writes alloc.Buffer into underlying writer.
 // BufferToBytesWriter is a Writer that writes alloc.Buffer into underlying writer.

+ 1 - 0
infra/conf/blackhole.go

@@ -2,6 +2,7 @@ package conf
 
 
 import (
 import (
 	"encoding/json"
 	"encoding/json"
+
 	"github.com/golang/protobuf/proto"
 	"github.com/golang/protobuf/proto"
 
 
 	"github.com/xtls/xray-core/common/serial"
 	"github.com/xtls/xray-core/common/serial"

+ 1 - 2
infra/conf/common_test.go

@@ -209,8 +209,7 @@ func TestUserParsing(t *testing.T) {
 	common.Must(json.Unmarshal([]byte(`{
 	common.Must(json.Unmarshal([]byte(`{
     "id": "96edb838-6d68-42ef-a933-25f7ac3a9d09",
     "id": "96edb838-6d68-42ef-a933-25f7ac3a9d09",
     "email": "[email protected]",
     "email": "[email protected]",
-    "level": 1,
-    "alterId": 100
+    "level": 1
   }`), user))
   }`), user))
 
 
 	nUser := user.Build()
 	nUser := user.Build()

+ 4 - 4
infra/conf/fakedns.go

@@ -68,10 +68,10 @@ func (FakeDNSPostProcessingStage) Process(config *Config) error {
 		}
 		}
 
 
 		switch strings.ToLower(config.DNSConfig.QueryStrategy) {
 		switch strings.ToLower(config.DNSConfig.QueryStrategy) {
-			case "useip4", "useipv4", "use_ip4", "use_ipv4", "use_ip_v4", "use-ip4", "use-ipv4", "use-ip-v4":
-				isIPv4Enable, isIPv6Enable = true, false
-			case "useip6", "useipv6", "use_ip6", "use_ipv6", "use_ip_v6", "use-ip6", "use-ipv6", "use-ip-v6":
-				isIPv4Enable, isIPv6Enable = false, true
+		case "useip4", "useipv4", "use_ip4", "use_ipv4", "use_ip_v4", "use-ip4", "use-ipv4", "use-ip-v4":
+			isIPv4Enable, isIPv6Enable = true, false
+		case "useip6", "useipv6", "use_ip6", "use_ipv6", "use_ip_v6", "use-ip6", "use-ipv6", "use-ip-v6":
+			isIPv4Enable, isIPv6Enable = false, true
 		}
 		}
 	}
 	}
 
 

+ 4 - 9
infra/conf/vmess_test.go

@@ -47,8 +47,7 @@ func TestVMessOutbound(t *testing.T) {
 								Email: "[email protected]",
 								Email: "[email protected]",
 								Level: 255,
 								Level: 255,
 								Account: serial.ToTypedMessage(&vmess.Account{
 								Account: serial.ToTypedMessage(&vmess.Account{
-									Id:      "e641f5ad-9397-41e3-bf1a-e8740dfed019",
-									AlterId: 0,
+									Id: "e641f5ad-9397-41e3-bf1a-e8740dfed019",
 									SecuritySettings: &protocol.SecurityConfig{
 									SecuritySettings: &protocol.SecurityConfig{
 										Type: protocol.SecurityType_AUTO,
 										Type: protocol.SecurityType_AUTO,
 									},
 									},
@@ -74,14 +73,12 @@ func TestVMessInbound(t *testing.T) {
 					{
 					{
 						"id": "27848739-7e62-4138-9fd3-098a63964b6b",
 						"id": "27848739-7e62-4138-9fd3-098a63964b6b",
 						"level": 0,
 						"level": 0,
-						"alterId": 16,
 						"email": "[email protected]",
 						"email": "[email protected]",
 						"security": "aes-128-gcm"
 						"security": "aes-128-gcm"
 					}
 					}
 				],
 				],
 				"default": {
 				"default": {
-					"level": 0,
-					"alterId": 32
+					"level": 0
 				},
 				},
 				"detour": {
 				"detour": {
 					"to": "tag_to_detour"
 					"to": "tag_to_detour"
@@ -95,8 +92,7 @@ func TestVMessInbound(t *testing.T) {
 						Level: 0,
 						Level: 0,
 						Email: "[email protected]",
 						Email: "[email protected]",
 						Account: serial.ToTypedMessage(&vmess.Account{
 						Account: serial.ToTypedMessage(&vmess.Account{
-							Id:      "27848739-7e62-4138-9fd3-098a63964b6b",
-							AlterId: 16,
+							Id: "27848739-7e62-4138-9fd3-098a63964b6b",
 							SecuritySettings: &protocol.SecurityConfig{
 							SecuritySettings: &protocol.SecurityConfig{
 								Type: protocol.SecurityType_AES128_GCM,
 								Type: protocol.SecurityType_AES128_GCM,
 							},
 							},
@@ -104,8 +100,7 @@ func TestVMessInbound(t *testing.T) {
 					},
 					},
 				},
 				},
 				Default: &inbound.DefaultConfig{
 				Default: &inbound.DefaultConfig{
-					Level:   0,
-					AlterId: 32,
+					Level: 0,
 				},
 				},
 				Detour: &inbound.DetourConfig{
 				Detour: &inbound.DetourConfig{
 					To: "tag_to_detour",
 					To: "tag_to_detour",

+ 1 - 2
infra/conf/xray.go

@@ -11,9 +11,8 @@ import (
 	"github.com/xtls/xray-core/app/proxyman"
 	"github.com/xtls/xray-core/app/proxyman"
 	"github.com/xtls/xray-core/app/stats"
 	"github.com/xtls/xray-core/app/stats"
 	"github.com/xtls/xray-core/common/serial"
 	"github.com/xtls/xray-core/common/serial"
-	"github.com/xtls/xray-core/transport/internet"
-
 	core "github.com/xtls/xray-core/core"
 	core "github.com/xtls/xray-core/core"
+	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )
 
 

+ 2 - 6
infra/conf/xray_test.go

@@ -72,7 +72,6 @@ func TestXrayConfig(t *testing.T) {
 					"settings": {
 					"settings": {
 						"clients": [
 						"clients": [
 							{
 							{
-								"alterId": 100,
 								"security": "aes-128-gcm",
 								"security": "aes-128-gcm",
 								"id": "0cdf8a45-303d-4fed-9780-29aa7f54175e"
 								"id": "0cdf8a45-303d-4fed-9780-29aa7f54175e"
 							}
 							}
@@ -102,7 +101,6 @@ func TestXrayConfig(t *testing.T) {
 					"settings": {
 					"settings": {
 						"clients": [
 						"clients": [
 							{
 							{
-								"alterId": 100,
 								"security": "aes-128-gcm",
 								"security": "aes-128-gcm",
 								"id": "0cdf8a45-303d-4fed-9780-29aa7f54175e"
 								"id": "0cdf8a45-303d-4fed-9780-29aa7f54175e"
 							}
 							}
@@ -266,8 +264,7 @@ func TestXrayConfig(t *testing.T) {
 								{
 								{
 									Level: 0,
 									Level: 0,
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      "0cdf8a45-303d-4fed-9780-29aa7f54175e",
-										AlterId: 100,
+										Id: "0cdf8a45-303d-4fed-9780-29aa7f54175e",
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -322,8 +319,7 @@ func TestXrayConfig(t *testing.T) {
 								{
 								{
 									Level: 0,
 									Level: 0,
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      "0cdf8a45-303d-4fed-9780-29aa7f54175e",
-										AlterId: 100,
+										Id: "0cdf8a45-303d-4fed-9780-29aa7f54175e",
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},

+ 1 - 2
proxy/dns/dns.go

@@ -6,8 +6,6 @@ import (
 	"sync"
 	"sync"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"golang.org/x/net/dns/dnsmessage"
 	"golang.org/x/net/dns/dnsmessage"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
@@ -22,6 +20,7 @@ import (
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 func init() {
 func init() {

+ 1 - 2
proxy/dokodemo/dokodemo.go

@@ -7,8 +7,6 @@ import (
 	"sync/atomic"
 	"sync/atomic"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/log"
 	"github.com/xtls/xray-core/common/log"
@@ -20,6 +18,7 @@ import (
 	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 func init() {
 func init() {

+ 1 - 2
proxy/freedom/freedom.go

@@ -6,8 +6,6 @@ import (
 	"context"
 	"context"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/dice"
 	"github.com/xtls/xray-core/common/dice"
@@ -22,6 +20,7 @@ import (
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 func init() {
 func init() {

+ 1 - 2
proxy/http/client.go

@@ -9,8 +9,6 @@ import (
 	"net/url"
 	"net/url"
 	"sync"
 	"sync"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"golang.org/x/net/http2"
 	"golang.org/x/net/http2"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
@@ -26,6 +24,7 @@ import (
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 )
 )
 
 

+ 1 - 2
proxy/http/server.go

@@ -9,8 +9,6 @@ import (
 	"strings"
 	"strings"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/errors"
 	"github.com/xtls/xray-core/common/errors"
@@ -24,6 +22,7 @@ import (
 	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 // Server is an HTTP proxy server.
 // Server is an HTTP proxy server.

+ 1 - 1
proxy/loopback/loopback.go

@@ -2,11 +2,11 @@ package loopback
 
 
 import (
 import (
 	"context"
 	"context"
-	"github.com/xtls/xray-core/common/net/cnc"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
+	"github.com/xtls/xray-core/common/net/cnc"
 	"github.com/xtls/xray-core/common/retry"
 	"github.com/xtls/xray-core/common/retry"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/task"
 	"github.com/xtls/xray-core/common/task"

+ 1 - 2
proxy/mtproto/server.go

@@ -5,8 +5,6 @@ import (
 	"context"
 	"context"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/crypto"
 	"github.com/xtls/xray-core/common/crypto"
@@ -18,6 +16,7 @@ import (
 	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 var dcList = []net.Address{
 var dcList = []net.Address{

+ 1 - 2
proxy/proxy.go

@@ -8,13 +8,12 @@ package proxy
 import (
 import (
 	"context"
 	"context"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/protocol"
 	"github.com/xtls/xray-core/common/protocol"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 // An Inbound processes inbound connections.
 // An Inbound processes inbound connections.

+ 1 - 2
proxy/shadowsocks/client.go

@@ -4,8 +4,6 @@ import (
 	"context"
 	"context"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
@@ -18,6 +16,7 @@ import (
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 // Client is a inbound handler for Shadowsocks protocol
 // Client is a inbound handler for Shadowsocks protocol

+ 1 - 2
proxy/shadowsocks/server.go

@@ -4,8 +4,6 @@ import (
 	"context"
 	"context"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/log"
 	"github.com/xtls/xray-core/common/log"
@@ -18,6 +16,7 @@ import (
 	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/udp"
 	"github.com/xtls/xray-core/transport/internet/udp"
 )
 )
 
 

+ 1 - 2
proxy/socks/client.go

@@ -4,8 +4,6 @@ import (
 	"context"
 	"context"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
@@ -19,6 +17,7 @@ import (
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 // Client is a Socks5 client.
 // Client is a Socks5 client.

+ 1 - 2
proxy/socks/server.go

@@ -5,8 +5,6 @@ import (
 	"io"
 	"io"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/log"
 	"github.com/xtls/xray-core/common/log"
@@ -20,6 +18,7 @@ import (
 	"github.com/xtls/xray-core/features"
 	"github.com/xtls/xray-core/features"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/udp"
 	"github.com/xtls/xray-core/transport/internet/udp"
 )
 )
 
 

+ 1 - 2
proxy/trojan/client.go

@@ -5,8 +5,6 @@ import (
 	"syscall"
 	"syscall"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/errors"
 	"github.com/xtls/xray-core/common/errors"
@@ -22,6 +20,7 @@ import (
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )
 
 

+ 1 - 2
proxy/trojan/protocol.go

@@ -8,8 +8,6 @@ import (
 	"runtime"
 	"runtime"
 	"syscall"
 	"syscall"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/errors"
 	"github.com/xtls/xray-core/common/errors"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
@@ -17,6 +15,7 @@ import (
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/signal"
 	"github.com/xtls/xray-core/common/signal"
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/features/stats"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )
 
 

+ 1 - 2
proxy/trojan/server.go

@@ -8,8 +8,6 @@ import (
 	"syscall"
 	"syscall"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/errors"
 	"github.com/xtls/xray-core/common/errors"
@@ -26,6 +24,7 @@ import (
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/policy"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/features/stats"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/udp"
 	"github.com/xtls/xray-core/transport/internet/udp"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"

+ 1 - 2
proxy/vless/encoding/encoding.go

@@ -9,8 +9,6 @@ import (
 	"runtime"
 	"runtime"
 	"syscall"
 	"syscall"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/errors"
 	"github.com/xtls/xray-core/common/errors"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
@@ -19,6 +17,7 @@ import (
 	"github.com/xtls/xray-core/common/signal"
 	"github.com/xtls/xray-core/common/signal"
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/proxy/vless"
 	"github.com/xtls/xray-core/proxy/vless"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )
 
 

+ 1 - 2
proxy/vless/inbound/inbound.go

@@ -10,8 +10,6 @@ import (
 	"syscall"
 	"syscall"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/errors"
 	"github.com/xtls/xray-core/common/errors"
@@ -31,6 +29,7 @@ import (
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/features/stats"
 	"github.com/xtls/xray-core/proxy/vless"
 	"github.com/xtls/xray-core/proxy/vless"
 	"github.com/xtls/xray-core/proxy/vless/encoding"
 	"github.com/xtls/xray-core/proxy/vless/encoding"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )

+ 1 - 2
proxy/vless/outbound/outbound.go

@@ -7,8 +7,6 @@ import (
 	"syscall"
 	"syscall"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
@@ -26,6 +24,7 @@ import (
 	"github.com/xtls/xray-core/proxy/vless/encoding"
 	"github.com/xtls/xray-core/proxy/vless/encoding"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )
 
 

+ 2 - 3
proxy/vmess/encoding/auth.go

@@ -5,11 +5,10 @@ import (
 	"encoding/binary"
 	"encoding/binary"
 	"hash/fnv"
 	"hash/fnv"
 
 
-	"github.com/xtls/xray-core/common"
+	"golang.org/x/crypto/sha3"
 
 
+	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/crypto"
 	"github.com/xtls/xray-core/common/crypto"
-
-	"golang.org/x/crypto/sha3"
 )
 )
 
 
 // Authenticate authenticates a byte array using Fnv hash.
 // Authenticate authenticates a byte array using Fnv hash.

+ 3 - 6
proxy/vmess/encoding/encoding_test.go

@@ -28,8 +28,7 @@ func TestRequestSerialization(t *testing.T) {
 	}
 	}
 	id := uuid.New()
 	id := uuid.New()
 	account := &vmess.Account{
 	account := &vmess.Account{
-		Id:      id.String(),
-		AlterId: 0,
+		Id: id.String(),
 	}
 	}
 	user.Account = toAccount(account)
 	user.Account = toAccount(account)
 
 
@@ -78,8 +77,7 @@ func TestInvalidRequest(t *testing.T) {
 	}
 	}
 	id := uuid.New()
 	id := uuid.New()
 	account := &vmess.Account{
 	account := &vmess.Account{
-		Id:      id.String(),
-		AlterId: 0,
+		Id: id.String(),
 	}
 	}
 	user.Account = toAccount(account)
 	user.Account = toAccount(account)
 
 
@@ -120,8 +118,7 @@ func TestMuxRequest(t *testing.T) {
 	}
 	}
 	id := uuid.New()
 	id := uuid.New()
 	account := &vmess.Account{
 	account := &vmess.Account{
-		Id:      id.String(),
-		AlterId: 0,
+		Id: id.String(),
 	}
 	}
 	user.Account = toAccount(account)
 	user.Account = toAccount(account)
 
 

+ 1 - 2
proxy/vmess/inbound/inbound.go

@@ -9,8 +9,6 @@ import (
 	"sync"
 	"sync"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/errors"
 	"github.com/xtls/xray-core/common/errors"
@@ -28,6 +26,7 @@ import (
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/proxy/vmess"
 	"github.com/xtls/xray-core/proxy/vmess"
 	"github.com/xtls/xray-core/proxy/vmess/encoding"
 	"github.com/xtls/xray-core/proxy/vmess/encoding"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 var (
 var (

+ 1 - 2
proxy/vmess/outbound/outbound.go

@@ -9,8 +9,6 @@ import (
 	"hash/crc64"
 	"hash/crc64"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
@@ -27,6 +25,7 @@ import (
 	"github.com/xtls/xray-core/proxy/vmess/encoding"
 	"github.com/xtls/xray-core/proxy/vmess/encoding"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 // Handler is an outbound connection handler for VMess protocol.
 // Handler is an outbound connection handler for VMess protocol.

+ 5 - 0
proxy/vmess/validator.go

@@ -71,6 +71,11 @@ func NewTimedUserValidator(hasher protocol.IDHash) *TimedUserValidator {
 	return tuv
 	return tuv
 }
 }
 
 
+// visible for testing
+func (v *TimedUserValidator) GetBaseTime() protocol.Timestamp {
+	return v.baseTime
+}
+
 func (v *TimedUserValidator) generateNewHashes(nowSec protocol.Timestamp, user *user) {
 func (v *TimedUserValidator) generateNewHashes(nowSec protocol.Timestamp, user *user) {
 	var hashValue [16]byte
 	var hashValue [16]byte
 	genEndSec := nowSec + cacheDurationSec
 	genEndSec := nowSec + cacheDurationSec

+ 7 - 10
proxy/vmess/validator_test.go

@@ -2,7 +2,6 @@ package vmess_test
 
 
 import (
 import (
 	"testing"
 	"testing"
-	"time"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/protocol"
 	"github.com/xtls/xray-core/common/protocol"
@@ -26,15 +25,14 @@ func TestUserValidator(t *testing.T) {
 	user := &protocol.MemoryUser{
 	user := &protocol.MemoryUser{
 		Email: "test",
 		Email: "test",
 		Account: toAccount(&Account{
 		Account: toAccount(&Account{
-			Id:      id.String(),
-			AlterId: 8,
+			Id: id.String(),
 		}),
 		}),
 	}
 	}
 	common.Must(v.Add(user))
 	common.Must(v.Add(user))
 
 
 	{
 	{
-		testSmallLag := func(lag time.Duration) {
-			ts := protocol.Timestamp(time.Now().Add(time.Second * lag).Unix())
+		testSmallLag := func(lag int64) {
+			ts := int64(v.GetBaseTime()) + lag + 240
 			idHash := hasher(id.Bytes())
 			idHash := hasher(id.Bytes())
 			common.Must2(serial.WriteUint64(idHash, uint64(ts)))
 			common.Must2(serial.WriteUint64(idHash, uint64(ts)))
 			userHash := idHash.Sum(nil)
 			userHash := idHash.Sum(nil)
@@ -46,7 +44,7 @@ func TestUserValidator(t *testing.T) {
 			if euser.Email != user.Email {
 			if euser.Email != user.Email {
 				t.Error("unexpected user email: ", euser.Email, " want ", user.Email)
 				t.Error("unexpected user email: ", euser.Email, " want ", user.Email)
 			}
 			}
-			if ets != ts {
+			if int64(ets) != ts {
 				t.Error("unexpected timestamp: ", ets, " want ", ts)
 				t.Error("unexpected timestamp: ", ets, " want ", ts)
 			}
 			}
 		}
 		}
@@ -61,8 +59,8 @@ func TestUserValidator(t *testing.T) {
 	}
 	}
 
 
 	{
 	{
-		testBigLag := func(lag time.Duration) {
-			ts := protocol.Timestamp(time.Now().Add(time.Second * lag).Unix())
+		testBigLag := func(lag int64) {
+			ts := int64(v.GetBaseTime()) + lag + 240
 			idHash := hasher(id.Bytes())
 			idHash := hasher(id.Bytes())
 			common.Must2(serial.WriteUint64(idHash, uint64(ts)))
 			common.Must2(serial.WriteUint64(idHash, uint64(ts)))
 			userHash := idHash.Sum(nil)
 			userHash := idHash.Sum(nil)
@@ -99,8 +97,7 @@ func BenchmarkUserValidator(b *testing.B) {
 			v.Add(&protocol.MemoryUser{
 			v.Add(&protocol.MemoryUser{
 				Email: "test",
 				Email: "test",
 				Account: toAccount(&Account{
 				Account: toAccount(&Account{
-					Id:      id.String(),
-					AlterId: 16,
+					Id: id.String(),
 				}),
 				}),
 			})
 			})
 		}
 		}

+ 5 - 10
testing/scenarios/command_test.go

@@ -181,8 +181,7 @@ func TestCommanderAddRemoveUser(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      u1.String(),
-								AlterId: 64,
+								Id: u1.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -248,8 +247,7 @@ func TestCommanderAddRemoveUser(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      u2.String(),
-										AlterId: 64,
+										Id: u2.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -285,8 +283,7 @@ func TestCommanderAddRemoveUser(t *testing.T) {
 				User: &protocol.User{
 				User: &protocol.User{
 					Email: "[email protected]",
 					Email: "[email protected]",
 					Account: serial.ToTypedMessage(&vmess.Account{
 					Account: serial.ToTypedMessage(&vmess.Account{
-						Id:      u2.String(),
-						AlterId: 64,
+						Id: u2.String(),
 					}),
 					}),
 				},
 				},
 			}),
 			}),
@@ -376,8 +373,7 @@ func TestCommanderStats(t *testing.T) {
 							Level: 1,
 							Level: 1,
 							Email: "test",
 							Email: "test",
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -432,8 +428,7 @@ func TestCommanderStats(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},

+ 2 - 4
testing/scenarios/feature_test.go

@@ -673,8 +673,7 @@ func TestDialXray(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -705,8 +704,7 @@ func TestDialXray(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},

+ 4 - 8
testing/scenarios/policy_test.go

@@ -76,8 +76,7 @@ func TestVMessClosing(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -130,8 +129,7 @@ func TestVMessClosing(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -190,8 +188,7 @@ func TestZeroBuffer(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -238,8 +235,7 @@ func TestZeroBuffer(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},

+ 4 - 8
testing/scenarios/reverse_test.go

@@ -93,8 +93,7 @@ func TestReverseProxy(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -168,8 +167,7 @@ func TestReverseProxy(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -278,8 +276,7 @@ func TestReverseProxyLongRunning(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -367,8 +364,7 @@ func TestReverseProxyLongRunning(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},

+ 4 - 4
testing/scenarios/tls_test.go

@@ -125,7 +125,7 @@ func TestSimpleTLSConnection(t *testing.T) {
 	common.Must(err)
 	common.Must(err)
 	defer CloseAllServers(servers)
 	defer CloseAllServers(servers)
 
 
-	if err := testTCPConn(clientPort, 1024, time.Second*2)(); err != nil {
+	if err := testTCPConn(clientPort, 1024, time.Second*20)(); err != nil {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
 }
 }
@@ -247,7 +247,7 @@ func TestAutoIssuingCertificate(t *testing.T) {
 	defer CloseAllServers(servers)
 	defer CloseAllServers(servers)
 
 
 	for i := 0; i < 10; i++ {
 	for i := 0; i < 10; i++ {
-		if err := testTCPConn(clientPort, 1024, time.Second*2)(); err != nil {
+		if err := testTCPConn(clientPort, 1024, time.Second*20)(); err != nil {
 			t.Error(err)
 			t.Error(err)
 		}
 		}
 	}
 	}
@@ -350,7 +350,7 @@ func TestTLSOverKCP(t *testing.T) {
 	common.Must(err)
 	common.Must(err)
 	defer CloseAllServers(servers)
 	defer CloseAllServers(servers)
 
 
-	if err := testTCPConn(clientPort, 1024, time.Second*2)(); err != nil {
+	if err := testTCPConn(clientPort, 1024, time.Second*20)(); err != nil {
 		t.Error(err)
 		t.Error(err)
 	}
 	}
 }
 }
@@ -925,7 +925,7 @@ func TestSimpleTLSConnectionPinned(t *testing.T) {
 	common.Must(err)
 	common.Must(err)
 	defer CloseAllServers(servers)
 	defer CloseAllServers(servers)
 
 
-	if err := testTCPConn(clientPort, 1024, time.Second*2)(); err != nil {
+	if err := testTCPConn(clientPort, 1024, time.Second*20)(); err != nil {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
 }
 }

+ 2 - 4
testing/scenarios/transport_test.go

@@ -290,8 +290,7 @@ func TestVMessQuic(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -354,8 +353,7 @@ func TestVMessQuic(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},

+ 22 - 44
testing/scenarios/vmess_test.go

@@ -216,8 +216,7 @@ func TestVMessGCM(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -264,8 +263,7 @@ func TestVMessGCM(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -322,8 +320,7 @@ func TestVMessGCMReadv(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -370,8 +367,7 @@ func TestVMessGCMReadv(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -431,8 +427,7 @@ func TestVMessGCMUDP(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -479,8 +474,7 @@ func TestVMessGCMUDP(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -534,8 +528,7 @@ func TestVMessChacha20(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -582,8 +575,7 @@ func TestVMessChacha20(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_CHACHA20_POLY1305,
 											Type: protocol.SecurityType_CHACHA20_POLY1305,
 										},
 										},
@@ -638,8 +630,7 @@ func TestVMessNone(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -686,8 +677,7 @@ func TestVMessNone(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_NONE,
 											Type: protocol.SecurityType_NONE,
 										},
 										},
@@ -744,8 +734,7 @@ func TestVMessKCP(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -792,8 +781,7 @@ func TestVMessKCP(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -874,8 +862,7 @@ func TestVMessKCPLarge(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -922,8 +909,7 @@ func TestVMessKCPLarge(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -1005,8 +991,7 @@ func TestVMessGCMMux(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -1059,8 +1044,7 @@ func TestVMessGCMMux(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -1124,8 +1108,7 @@ func TestVMessGCMMuxUDP(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -1192,8 +1175,7 @@ func TestVMessGCMMuxUDP(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},
@@ -1255,8 +1237,7 @@ func TestVMessZero(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -1303,8 +1284,7 @@ func TestVMessZero(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_ZERO,
 											Type: protocol.SecurityType_ZERO,
 										},
 										},
@@ -1358,8 +1338,7 @@ func TestVMessGCMLengthAuth(t *testing.T) {
 					User: []*protocol.User{
 					User: []*protocol.User{
 						{
 						{
 							Account: serial.ToTypedMessage(&vmess.Account{
 							Account: serial.ToTypedMessage(&vmess.Account{
-								Id:      userID.String(),
-								AlterId: 64,
+								Id: userID.String(),
 							}),
 							}),
 						},
 						},
 					},
 					},
@@ -1406,8 +1385,7 @@ func TestVMessGCMLengthAuth(t *testing.T) {
 							User: []*protocol.User{
 							User: []*protocol.User{
 								{
 								{
 									Account: serial.ToTypedMessage(&vmess.Account{
 									Account: serial.ToTypedMessage(&vmess.Account{
-										Id:      userID.String(),
-										AlterId: 64,
+										Id: userID.String(),
 										SecuritySettings: &protocol.SecurityConfig{
 										SecuritySettings: &protocol.SecurityConfig{
 											Type: protocol.SecurityType_AES128_GCM,
 											Type: protocol.SecurityType_AES128_GCM,
 										},
 										},

+ 1 - 2
transport/internet/dialer.go

@@ -5,14 +5,13 @@ import (
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/dice"
 	"github.com/xtls/xray-core/common/dice"
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net/cnc"
 	"github.com/xtls/xray-core/common/net/cnc"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/features/dns"
 	"github.com/xtls/xray-core/features/dns"
 	"github.com/xtls/xray-core/features/outbound"
 	"github.com/xtls/xray-core/features/outbound"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/pipe"
 	"github.com/xtls/xray-core/transport/pipe"
 )
 )
 
 

+ 1 - 2
transport/internet/domainsocket/dial.go

@@ -6,11 +6,10 @@ package domainsocket
 import (
 import (
 	"context"
 	"context"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )

+ 1 - 2
transport/internet/domainsocket/listener.go

@@ -9,14 +9,13 @@ import (
 	"os"
 	"os"
 	"strings"
 	"strings"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	goxtls "github.com/xtls/go"
 	goxtls "github.com/xtls/go"
 	"golang.org/x/sys/unix"
 	"golang.org/x/sys/unix"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )

+ 1 - 2
transport/internet/domainsocket/listener_test.go

@@ -8,13 +8,12 @@ import (
 	"runtime"
 	"runtime"
 	"testing"
 	"testing"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
 	. "github.com/xtls/xray-core/transport/internet/domainsocket"
 	. "github.com/xtls/xray-core/transport/internet/domainsocket"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 func TestListen(t *testing.T) {
 func TestListen(t *testing.T) {

+ 1 - 2
transport/internet/http/dialer.go

@@ -8,8 +8,6 @@ import (
 	"sync"
 	"sync"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"golang.org/x/net/http2"
 	"golang.org/x/net/http2"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
@@ -18,6 +16,7 @@ import (
 	"github.com/xtls/xray-core/common/net/cnc"
 	"github.com/xtls/xray-core/common/net/cnc"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/pipe"
 	"github.com/xtls/xray-core/transport/pipe"
 )
 )

+ 1 - 2
transport/internet/http/http_test.go

@@ -6,8 +6,6 @@ import (
 	"testing"
 	"testing"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
@@ -17,6 +15,7 @@ import (
 	"github.com/xtls/xray-core/testing/servers/tcp"
 	"github.com/xtls/xray-core/testing/servers/tcp"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
 	. "github.com/xtls/xray-core/transport/internet/http"
 	. "github.com/xtls/xray-core/transport/internet/http"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 )
 )
 
 

+ 1 - 2
transport/internet/kcp/dialer.go

@@ -5,13 +5,12 @@ import (
 	"io"
 	"io"
 	"sync/atomic"
 	"sync/atomic"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/dice"
 	"github.com/xtls/xray-core/common/dice"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )

+ 1 - 2
transport/internet/kcp/kcp_test.go

@@ -7,8 +7,6 @@ import (
 	"testing"
 	"testing"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp"
 	"golang.org/x/sync/errgroup"
 	"golang.org/x/sync/errgroup"
 
 
@@ -17,6 +15,7 @@ import (
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
 	. "github.com/xtls/xray-core/transport/internet/kcp"
 	. "github.com/xtls/xray-core/transport/internet/kcp"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 func TestDialAndListen(t *testing.T) {
 func TestDialAndListen(t *testing.T) {

+ 1 - 2
transport/internet/kcp/listener.go

@@ -6,14 +6,13 @@ import (
 	gotls "crypto/tls"
 	gotls "crypto/tls"
 	"sync"
 	"sync"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	goxtls "github.com/xtls/go"
 	goxtls "github.com/xtls/go"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/udp"
 	"github.com/xtls/xray-core/transport/internet/udp"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"

+ 1 - 2
transport/internet/kcp/output.go

@@ -4,9 +4,8 @@ import (
 	"io"
 	"io"
 	"sync"
 	"sync"
 
 
-	"github.com/xtls/xray-core/common/retry"
-
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
+	"github.com/xtls/xray-core/common/retry"
 )
 )
 
 
 type SegmentWriter interface {
 type SegmentWriter interface {

+ 1 - 2
transport/internet/quic/dialer.go

@@ -5,14 +5,13 @@ import (
 	"sync"
 	"sync"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/lucas-clemente/quic-go"
 	"github.com/lucas-clemente/quic-go"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/task"
 	"github.com/xtls/xray-core/common/task"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 )
 )
 
 

+ 1 - 2
transport/internet/quic/quic_test.go

@@ -6,8 +6,6 @@ import (
 	"testing"
 	"testing"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
@@ -20,6 +18,7 @@ import (
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet/headers/wireguard"
 	"github.com/xtls/xray-core/transport/internet/headers/wireguard"
 	"github.com/xtls/xray-core/transport/internet/quic"
 	"github.com/xtls/xray-core/transport/internet/quic"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 )
 )
 
 

+ 2 - 2
transport/internet/tagged/taggedimpl/impl.go

@@ -2,11 +2,11 @@ package taggedimpl
 
 
 import (
 import (
 	"context"
 	"context"
-	"github.com/xtls/xray-core/common/net/cnc"
-	"github.com/xtls/xray-core/core"
 
 
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
+	"github.com/xtls/xray-core/common/net/cnc"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
+	"github.com/xtls/xray-core/core"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/transport/internet/tagged"
 	"github.com/xtls/xray-core/transport/internet/tagged"
 )
 )

+ 1 - 2
transport/internet/tcp/dialer.go

@@ -3,12 +3,11 @@ package tcp
 import (
 import (
 	"context"
 	"context"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )

+ 1 - 2
transport/internet/tcp/hub.go

@@ -6,14 +6,13 @@ import (
 	"strings"
 	"strings"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	goxtls "github.com/xtls/go"
 	goxtls "github.com/xtls/go"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 	"github.com/xtls/xray-core/transport/internet/xtls"
 )
 )

+ 1 - 2
transport/internet/tcp/sockopt_linux.go

@@ -7,9 +7,8 @@ import (
 	"syscall"
 	"syscall"
 	"unsafe"
 	"unsafe"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 const SO_ORIGINAL_DST = 80
 const SO_ORIGINAL_DST = 80

+ 1 - 2
transport/internet/tcp_hub.go

@@ -3,9 +3,8 @@ package internet
 import (
 import (
 	"context"
 	"context"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 var transportListenerCache = make(map[string]ListenFunc)
 var transportListenerCache = make(map[string]ListenFunc)

+ 1 - 2
transport/internet/udp/dialer.go

@@ -3,11 +3,10 @@ package udp
 import (
 import (
 	"context"
 	"context"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 )
 )
 
 
 func init() {
 func init() {

+ 1 - 2
transport/internet/udp/dispatcher.go

@@ -6,14 +6,13 @@ import (
 	"sync"
 	"sync"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/common/signal/done"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/buf"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/protocol/udp"
 	"github.com/xtls/xray-core/common/protocol/udp"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/signal"
 	"github.com/xtls/xray-core/common/signal"
+	"github.com/xtls/xray-core/common/signal/done"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/features/routing"
 	"github.com/xtls/xray-core/transport"
 	"github.com/xtls/xray-core/transport"
 )
 )

+ 1 - 2
transport/internet/websocket/dialer.go

@@ -10,14 +10,13 @@ import (
 	"os"
 	"os"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/gorilla/websocket"
 	"github.com/gorilla/websocket"
 
 
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/common/session"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 )
 )
 
 

+ 1 - 2
transport/internet/websocket/ws_test.go

@@ -6,12 +6,11 @@ import (
 	"testing"
 	"testing"
 	"time"
 	"time"
 
 
-	"github.com/xtls/xray-core/transport/internet/stat"
-
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/net"
 	"github.com/xtls/xray-core/common/protocol/tls/cert"
 	"github.com/xtls/xray-core/common/protocol/tls/cert"
 	"github.com/xtls/xray-core/transport/internet"
 	"github.com/xtls/xray-core/transport/internet"
+	"github.com/xtls/xray-core/transport/internet/stat"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	. "github.com/xtls/xray-core/transport/internet/websocket"
 	. "github.com/xtls/xray-core/transport/internet/websocket"
 )
 )