From a883faae9d13681f8de63856cd0f42672132d0a7 Mon Sep 17 00:00:00 2001 From: xishang0128 Date: Sun, 22 Oct 2023 22:21:33 +0800 Subject: [PATCH] chore: Try to restore process rules --- tunnel/tunnel.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tunnel/tunnel.go b/tunnel/tunnel.go index 7508bd82..5f14c096 100644 --- a/tunnel/tunnel.go +++ b/tunnel/tunnel.go @@ -595,8 +595,8 @@ func match(metadata *C.Metadata) (C.Proxy, C.Rule, error) { configMux.RLock() defer configMux.RUnlock() var ( - resolved bool - attemptProcessLookup = true + resolved bool + processFound bool ) if node, ok := resolver.DefaultHosts.Search(metadata.Host, false); ok { @@ -620,8 +620,7 @@ func match(metadata *C.Metadata) (C.Proxy, C.Rule, error) { }() } - if attemptProcessLookup && !findProcessMode.Off() && (findProcessMode.Always() || rule.ShouldFindProcess()) { - attemptProcessLookup = false + if !findProcessMode.Off() && !processFound && (findProcessMode.Always() || rule.ShouldFindProcess()) { uid, path, err := P.FindProcessName(metadata.NetWork.String(), metadata.SrcIP, int(metadata.SrcPort)) if err != nil { log.Debugln("[Process] find process %s: %v", metadata.String(), err) @@ -629,6 +628,7 @@ func match(metadata *C.Metadata) (C.Proxy, C.Rule, error) { metadata.Process = filepath.Base(path) metadata.ProcessPath = path metadata.Uid = uid + processFound = true if procesCache != metadata.Process { log.Debugln("[Process] %s from process %s", metadata.String(), path) }