fix: find process error

This commit is contained in:
gVisor bot 2022-06-14 23:14:43 +08:00
parent 14dafb2d5c
commit bb9fac37ae

View file

@ -386,18 +386,16 @@ func match(metadata *C.Metadata) (C.Proxy, C.Rule, error) {
resolved = true resolved = true
} }
if !foundProcess && alwaysFindProcess && rule.ShouldFindProcess() { if !foundProcess && (alwaysFindProcess || rule.ShouldFindProcess()) {
srcPort, err := strconv.ParseUint(metadata.SrcPort, 10, 16) srcPort, err := strconv.ParseUint(metadata.SrcPort, 10, 16)
if err == nil && P.ShouldFindProcess(metadata) { uid, path, err := P.FindProcessName(metadata.NetWork.String(), metadata.SrcIP, int(srcPort))
uid, path, err := P.FindProcessName(metadata.NetWork.String(), metadata.SrcIP, int(srcPort)) if err != nil {
if err != nil { log.Debugln("[Process] find process %s: %v", metadata.String(), err)
log.Debugln("[Process] find process %s: %v", metadata.String(), err) } else {
} else { process = filepath.Base(path)
process = filepath.Base(path) processPath = path
processPath = path processUid = uid
processUid = uid foundProcess = true
foundProcess = true
}
} }
} }