Skip to content

Commit

Permalink
Fix process
Browse files Browse the repository at this point in the history
  • Loading branch information
nekohasekai committed Jan 30, 2025
1 parent 7a9d33d commit 6af6a33
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 30 deletions.
39 changes: 12 additions & 27 deletions common/process/searcher_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ package process

import (
"context"
"errors"
"fmt"
"net/netip"
"syscall"

E "github.com/sagernet/sing/common/exceptions"
N "github.com/sagernet/sing/common/network"
"github.com/sagernet/sing/common/winiphlpapi"

"golang.org/x/sys/windows"
Expand All @@ -29,26 +29,15 @@ func initWin32API() error {
}

func (s *windowsSearcher) FindProcessInfo(ctx context.Context, network string, source netip.AddrPort, destination netip.AddrPort) (*Info, error) {
var info *Info
if N.NetworkName(network) == N.NetworkTCP {
pid, err := winiphlpapi.FindTCPPid(source, destination)
if err != nil {
return nil, err
}
info = &Info{ProcessID: pid}
} else {
pid, err := winiphlpapi.FindUDPPid(source)
if err != nil {
return nil, err
}
info = &Info{ProcessID: pid}
pid, err := winiphlpapi.FindPid(network, source)
if err != nil {
return nil, err
}
if info == nil {
return nil, ErrNotFound
path, err := getProcessPath(pid)
if err != nil {
return &Info{ProcessID: pid, UserId: -1}, err
}
var err error
info.ProcessPath, err = getProcessPath(info.ProcessID)
return info, err
return &Info{ProcessID: pid, ProcessPath: path, UserId: -1}, nil
}

func getProcessPath(pid uint32) (string, error) {
Expand All @@ -63,15 +52,11 @@ func getProcessPath(pid uint32) (string, error) {
return "", err
}
defer windows.CloseHandle(handle)
var size uint32
err = windows.QueryFullProcessImageName(handle, 0, nil, &size)
if !errors.Is(err, windows.ERROR_INSUFFICIENT_BUFFER) {
return "", err
}
buf := make([]uint16, size)
size := uint32(syscall.MAX_LONG_PATH)
buf := make([]uint16, syscall.MAX_LONG_PATH)
err = windows.QueryFullProcessImageName(handle, 0, &buf[0], &size)
if err != nil {
return "", err
}
return windows.UTF16ToString(buf), nil
return windows.UTF16ToString(buf[:size]), nil
}
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ require (
github.com/sagernet/gvisor v0.0.0-20241123041152-536d05261cff
github.com/sagernet/quic-go v0.48.2-beta.1
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691
github.com/sagernet/sing v0.6.0-beta.12.0.20250130050330-92f3c4c9a664
github.com/sagernet/sing v0.6.0-beta.12.0.20250130112616-23af22fe01ff
github.com/sagernet/sing-mux v0.3.0-alpha.1
github.com/sagernet/sing-quic v0.4.0-beta.4
github.com/sagernet/sing-shadowsocks v0.2.7
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,8 @@ github.com/sagernet/quic-go v0.48.2-beta.1/go.mod h1:1WgdDIVD1Gybp40JTWketeSfKA/
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691 h1:5Th31OC6yj8byLGkEnIYp6grlXfo1QYUfiYFGjewIdc=
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691/go.mod h1:B8lp4WkQ1PwNnrVMM6KyuFR20pU8jYBD+A4EhJovEXU=
github.com/sagernet/sing v0.2.18/go.mod h1:OL6k2F0vHmEzXz2KW19qQzu172FDgSbUSODylighuVo=
github.com/sagernet/sing v0.6.0-beta.12.0.20250130050330-92f3c4c9a664 h1:xT1vUF2ne8PwZKH5ed2njvpQkVDjvBj9gwHmB/4P33M=
github.com/sagernet/sing v0.6.0-beta.12.0.20250130050330-92f3c4c9a664/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak=
github.com/sagernet/sing v0.6.0-beta.12.0.20250130112616-23af22fe01ff h1:aZeWJw/NkI3/NoXbNHzv2435nWYTV+ZDNDWXTnN9FjQ=
github.com/sagernet/sing v0.6.0-beta.12.0.20250130112616-23af22fe01ff/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak=
github.com/sagernet/sing-mux v0.3.0-alpha.1 h1:IgNX5bJBpL41gGbp05pdDOvh/b5eUQ6cv9240+Ngipg=
github.com/sagernet/sing-mux v0.3.0-alpha.1/go.mod h1:FTcImmdfW38Lz7b+HQ+mxxOth1lz4ao8uEnz+MwIJQE=
github.com/sagernet/sing-quic v0.4.0-beta.4 h1:kKiMLGaxvVLDCSvCMYo4PtWd1xU6FTL7xvUAQfXO09g=
Expand Down

0 comments on commit 6af6a33

Please sign in to comment.