diff --git a/network/state/lookup.go b/network/state/lookup.go index 03188e8e..2aad2d73 100644 --- a/network/state/lookup.go +++ b/network/state/lookup.go @@ -28,11 +28,6 @@ var ( ErrPIDNotFound = errors.New("could not find pid for socket inode") ) -var ( - lookupTries = 20 // With a max wait of 5ms, this amounts to up to 100ms. - fastLookupTries = 2 -) - // Lookup looks for the given connection in the system state tables and returns the PID of the associated process and whether the connection is inbound. func Lookup(pktInfo *packet.Info, fast bool) (pid int, inbound bool, err error) { // auto-detect version diff --git a/network/state/system_default.go b/network/state/system_default.go index 4b798996..973951c0 100644 --- a/network/state/system_default.go +++ b/network/state/system_default.go @@ -10,6 +10,11 @@ import ( "github.com/safing/portmaster/network/socket" ) +var ( + lookupTries = 20 // With a max wait of 5ms, this amounts to up to 100ms. + fastLookupTries = 2 +) + func init() { // This increases performance on unsupported system. // It's not critical at all and does not break anything if it fails. diff --git a/network/state/system_linux.go b/network/state/system_linux.go index f0fe5382..51954264 100644 --- a/network/state/system_linux.go +++ b/network/state/system_linux.go @@ -12,9 +12,12 @@ var ( getTCP6Table = proc.GetTCP6Table getUDP4Table = proc.GetUDP4Table getUDP6Table = proc.GetUDP6Table -) -var baseWaitTime = 3 * time.Millisecond + lookupTries = 20 // With a max wait of 5ms, this amounts to up to 100ms. + fastLookupTries = 2 + + baseWaitTime = 3 * time.Millisecond +) // CheckPID checks the if socket info already has a PID and if not, tries to find it. // Depending on the OS, this might be a no-op. diff --git a/network/state/system_windows.go b/network/state/system_windows.go index 2a95a01e..a72d9195 100644 --- a/network/state/system_windows.go +++ b/network/state/system_windows.go @@ -10,6 +10,13 @@ var ( getTCP6Table = iphelper.GetTCP6Table getUDP4Table = iphelper.GetUDP4Table getUDP6Table = iphelper.GetUDP6Table + + // With a max wait of 5ms, this amounts to up to 25ms, + // excluding potential data fetching time. + // Measured on Windows: ~150ms + lookupTries = 5 + + fastLookupTries = 2 ) // CheckPID checks the if socket info already has a PID and if not, tries to find it.