From 17a5aaebe27e610987910c08adfa3845b0455abf Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Sun, 9 Jan 2022 22:45:50 +0000 Subject: [PATCH] fix fakedns instance resolution leak by avoid using require --- app/dispatcher/fakednssniffer.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/dispatcher/fakednssniffer.go b/app/dispatcher/fakednssniffer.go index 8c0909206..8abb77fb4 100644 --- a/app/dispatcher/fakednssniffer.go +++ b/app/dispatcher/fakednssniffer.go @@ -17,12 +17,13 @@ import ( // newFakeDNSSniffer Creates a Fake DNS metadata sniffer func newFakeDNSSniffer(ctx context.Context) (protocolSnifferWithMetadata, error) { var fakeDNSEngine dns.FakeDNSEngine - err := core.RequireFeatures(ctx, func(fdns dns.FakeDNSEngine) { - fakeDNSEngine = fdns - }) - if err != nil { - return protocolSnifferWithMetadata{}, err + { + fakeDNSEngineFeat := core.MustFromContext(ctx).GetFeature(fakeDNSEngine) + if fakeDNSEngineFeat != nil { + fakeDNSEngine = fakeDNSEngineFeat.(dns.FakeDNSEngine) + } } + if fakeDNSEngine == nil { errNotInit := newError("FakeDNSEngine is not initialized, but such a sniffer is used").AtError() return protocolSnifferWithMetadata{}, errNotInit