From 620d8f1fb5326e0694e9f560b98f118f8cf5e580 Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Tue, 4 May 2021 14:19:23 +0100 Subject: [PATCH] remove context public interface --- app/proxyman/outbound/handler_test.go | 7 +++++-- context.go | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/proxyman/outbound/handler_test.go b/app/proxyman/outbound/handler_test.go index 8c8169573..53c0656d8 100644 --- a/app/proxyman/outbound/handler_test.go +++ b/app/proxyman/outbound/handler_test.go @@ -13,6 +13,8 @@ import ( "github.com/v2fly/v2ray-core/v4/features/outbound" "github.com/v2fly/v2ray-core/v4/proxy/freedom" "github.com/v2fly/v2ray-core/v4/transport/internet" + + _ "unsafe" ) func TestInterfaces(t *testing.T) { @@ -20,7 +22,8 @@ func TestInterfaces(t *testing.T) { _ = (outbound.Manager)(new(Manager)) } -const v2rayKey core.V2rayKey = 1 +//go:linkname mustToContextForced github.com/v2fly/v2ray-core/v4.mustToContext +func mustToContextForced(ctx context.Context, v *core.Instance) context.Context func TestOutboundWithoutStatCounter(t *testing.T) { config := &core.Config{ @@ -38,7 +41,7 @@ func TestOutboundWithoutStatCounter(t *testing.T) { v, _ := core.New(config) v.AddFeature((outbound.Manager)(new(Manager))) - ctx := context.WithValue(context.Background(), v2rayKey, v) + ctx := mustToContextForced(context.Background(), v) h, _ := NewHandler(ctx, &core.OutboundHandlerConfig{ Tag: "tag", ProxySettings: serial.ToTypedMessage(&freedom.Config{}), diff --git a/context.go b/context.go index 874a8a6ff..ca40e6841 100644 --- a/context.go +++ b/context.go @@ -7,9 +7,9 @@ import ( ) // V2rayKey is the key type of Instance in Context, exported for test. -type V2rayKey int +type v2rayKeyType int -const v2rayKey V2rayKey = 1 +const v2rayKey v2rayKeyType = 1 // FromContext returns an Instance from the given context, or nil if the context doesn't contain one. func FromContext(ctx context.Context) *Instance {