fix: find process error

This commit is contained in:
Skyxim 2022-06-14 23:14:43 +08:00
parent 2e6bdc5636
commit 1b3b5b4dfe

View file

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