fix: refactored routing logic (fixes #701)

This commit is contained in:
Simone Margaritelli 2021-04-10 21:55:00 +02:00
commit 43a93fd866
11 changed files with 202 additions and 80 deletions

View file

@ -13,23 +13,8 @@ import (
const airPortPath = "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport"
var IPv4RouteParser = regexp.MustCompile(`([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+).*`)
var IPv4RouteTokens = 5
var IPv4RouteCmd = "netstat"
var IPv4RouteCmdOpts = []string{"-n", "-r"}
var WiFiChannelParser = regexp.MustCompile(`(?m)^.*Supported Channels: (.*)$`)
func IPv4RouteIsGateway(ifname string, tokens []string, f func(gateway string) (*Endpoint, error)) (*Endpoint, error) {
flags := tokens[3]
ifname2 := tokens[4]
if ifname == ifname2 && flags == "UGSc" {
gateway := tokens[2]
return f(gateway)
}
return nil, nil
}
// see Windows version to understand why ....
func getInterfaceName(iface net.Interface) string {
return iface.Name