diff --git a/api/control/control.go b/api/control/control.go index 5a0680b..9eefb61 100644 --- a/api/control/control.go +++ b/api/control/control.go @@ -42,7 +42,7 @@ func (o *apiController) listUsers(apiClient service.TrojanServerServiceClient) e return err } defer stream.CloseSend() - result := []service.ListUsersResponse{} + result := []*service.ListUsersResponse{} for { resp, err := stream.Recv() if err != nil { @@ -51,7 +51,7 @@ func (o *apiController) listUsers(apiClient service.TrojanServerServiceClient) e } return err } - result = append(result, *resp) + result = append(result, resp) } data, err := json.Marshal(result) common.Must(err) diff --git a/tunnel/adapter/server.go b/tunnel/adapter/server.go index cdea4ab..ee29137 100644 --- a/tunnel/adapter/server.go +++ b/tunnel/adapter/server.go @@ -94,7 +94,9 @@ func (s *Server) Close() error { func NewServer(ctx context.Context, _ tunnel.Server) (*Server, error) { cfg := config.FromContext(ctx, Name).(*Config) - ctx, cancel := context.WithCancel(ctx) + var cancel context.CancelFunc + ctx, cancel = context.WithCancel(ctx) + addr := tunnel.NewAddressFromHostPort("tcp", cfg.LocalHost, cfg.LocalPort) tcpListener, err := net.Listen("tcp", addr.String()) if err != nil { diff --git a/tunnel/router/client.go b/tunnel/router/client.go index 9ed6de1..d4fb3bf 100644 --- a/tunnel/router/client.go +++ b/tunnel/router/client.go @@ -253,13 +253,15 @@ func loadCode(cfg *Config, prefix string) []codeInfo { func NewClient(ctx context.Context, underlay tunnel.Client) (*Client, error) { cfg := config.FromContext(ctx, Name).(*Config) - ctx, cancel := context.WithCancel(ctx) + var cancel context.CancelFunc + ctx, cancel = context.WithCancel(ctx) direct, err := freedom.NewClient(ctx, nil) if err != nil { cancel() return nil, common.NewError("router failed to initialize raw client").Base(err) } + client := &Client{ domains: [3][]*v2router.Domain{}, cidrs: [3][]*v2router.CIDR{}, diff --git a/tunnel/tls/fingerprint/tls.go b/tunnel/tls/fingerprint/tls.go index 405aa1a..efe9b65 100644 --- a/tunnel/tls/fingerprint/tls.go +++ b/tunnel/tls/fingerprint/tls.go @@ -40,7 +40,7 @@ func GetClientHelloSpec(name string, websocket bool) (*ClientHelloSpec, error) { &SNIExtension{}, &UtlsExtendedMasterSecretExtension{}, &RenegotiationInfoExtension{Renegotiation: RenegotiateOnceAsClient}, - &SupportedCurvesExtension{[]CurveID{ + &SupportedCurvesExtension{Curves: []CurveID{ CurveID(GREASE_PLACEHOLDER), X25519, CurveP256, @@ -63,21 +63,21 @@ func GetClientHelloSpec(name string, websocket bool) (*ClientHelloSpec, error) { PKCS1WithSHA512, }}, &SCTExtension{}, - &KeyShareExtension{[]KeyShare{ + &KeyShareExtension{KeyShares: []KeyShare{ {Group: CurveID(GREASE_PLACEHOLDER), Data: []byte{0}}, {Group: X25519}, }}, - &PSKKeyExchangeModesExtension{[]uint8{ + &PSKKeyExchangeModesExtension{Modes: []uint8{ PskModeDHE, }}, - &SupportedVersionsExtension{[]uint16{ + &SupportedVersionsExtension{Versions: []uint16{ GREASE_PLACEHOLDER, VersionTLS13, VersionTLS12, VersionTLS11, VersionTLS10, }}, - &FakeCertCompressionAlgsExtension{[]CertCompressionAlgo{ + &FakeCertCompressionAlgsExtension{Methods: []CertCompressionAlgo{ CertCompressionBrotli, }}, &UtlsGREASEExtension{}, @@ -115,7 +115,7 @@ func GetClientHelloSpec(name string, websocket bool) (*ClientHelloSpec, error) { &SNIExtension{}, &UtlsExtendedMasterSecretExtension{}, &RenegotiationInfoExtension{Renegotiation: RenegotiateOnceAsClient}, - &SupportedCurvesExtension{[]CurveID{ + &SupportedCurvesExtension{Curves: []CurveID{ X25519, CurveP256, CurveP384, @@ -129,11 +129,11 @@ func GetClientHelloSpec(name string, websocket bool) (*ClientHelloSpec, error) { &SessionTicketExtension{}, &ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &StatusRequestExtension{}, - &KeyShareExtension{[]KeyShare{ + &KeyShareExtension{KeyShares: []KeyShare{ {Group: X25519}, {Group: CurveP256}, }}, - &SupportedVersionsExtension{[]uint16{ + &SupportedVersionsExtension{Versions: []uint16{ VersionTLS13, VersionTLS12, VersionTLS11, @@ -151,8 +151,8 @@ func GetClientHelloSpec(name string, websocket bool) (*ClientHelloSpec, error) { ECDSAWithSHA1, PKCS1WithSHA1, }}, - &PSKKeyExchangeModesExtension{[]uint8{1 /*pskModeDHE*/}}, - &FakeRecordSizeLimitExtension{0x4001}, + &PSKKeyExchangeModesExtension{Modes: []uint8{1 /*pskModeDHE*/}}, + &FakeRecordSizeLimitExtension{Limit: 0x4001}, &UtlsPaddingExtension{GetPaddingLen: BoringPaddingStyle}, }} case "ios": @@ -209,7 +209,7 @@ func GetClientHelloSpec(name string, websocket bool) (*ClientHelloSpec, error) { &SupportedPointsExtension{SupportedPoints: []byte{ 0, //pointFormatUncompressed, }}, - &SupportedCurvesExtension{[]CurveID{ + &SupportedCurvesExtension{Curves: []CurveID{ X25519, CurveP256, CurveP384,