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,9 +386,8 @@ 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)
@ -399,7 +398,6 @@ func match(metadata *C.Metadata) (C.Proxy, C.Rule, error) {
foundProcess = true foundProcess = true
} }
} }
}
if foundProcess { if foundProcess {
metadata.Uid = &processUid metadata.Uid = &processUid