Fix darwin routes
This commit is contained in:
parent
779d1c7db2
commit
d923e5d10a
2 changed files with 11 additions and 1 deletions
2
tun.go
2
tun.go
|
|
@ -85,7 +85,7 @@ func CalculateInterfaceName(name string) (tunName string) {
|
||||||
for _, netInterface := range interfaces {
|
for _, netInterface := range interfaces {
|
||||||
if strings.HasPrefix(netInterface.Name, tunName) {
|
if strings.HasPrefix(netInterface.Name, tunName) {
|
||||||
index, parseErr := strconv.ParseInt(netInterface.Name[len(tunName):], 10, 16)
|
index, parseErr := strconv.ParseInt(netInterface.Name[len(tunName):], 10, 16)
|
||||||
if parseErr == nil {
|
if parseErr == nil && int(index) >= tunIndex {
|
||||||
tunIndex = int(index) + 1
|
tunIndex = int(index) + 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
10
tun_rules.go
10
tun_rules.go
|
|
@ -109,6 +109,11 @@ func (o *Options) BuildAutoRouteRanges(underNetworkExtension bool) ([]netip.Pref
|
||||||
var inet4Ranges []netip.Prefix
|
var inet4Ranges []netip.Prefix
|
||||||
if len(o.Inet4RouteAddress) > 0 {
|
if len(o.Inet4RouteAddress) > 0 {
|
||||||
inet4Ranges = o.Inet4RouteAddress
|
inet4Ranges = o.Inet4RouteAddress
|
||||||
|
for _, address := range o.Inet4Address {
|
||||||
|
if address.Bits() < 32 {
|
||||||
|
inet4Ranges = append(inet4Ranges, netipx.RangeOfPrefix(address).Prefixes()...)
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if autoRouteUseSubRanges && !underNetworkExtension {
|
} else if autoRouteUseSubRanges && !underNetworkExtension {
|
||||||
inet4Ranges = []netip.Prefix{
|
inet4Ranges = []netip.Prefix{
|
||||||
netip.PrefixFrom(netip.AddrFrom4([4]byte{0: 1}), 8),
|
netip.PrefixFrom(netip.AddrFrom4([4]byte{0: 1}), 8),
|
||||||
|
|
@ -144,6 +149,11 @@ func (o *Options) BuildAutoRouteRanges(underNetworkExtension bool) ([]netip.Pref
|
||||||
var inet6Ranges []netip.Prefix
|
var inet6Ranges []netip.Prefix
|
||||||
if len(o.Inet6RouteAddress) > 0 {
|
if len(o.Inet6RouteAddress) > 0 {
|
||||||
inet6Ranges = o.Inet6RouteAddress
|
inet6Ranges = o.Inet6RouteAddress
|
||||||
|
for _, address := range o.Inet6Address {
|
||||||
|
if address.Bits() < 32 {
|
||||||
|
inet6Ranges = append(inet6Ranges, netipx.RangeOfPrefix(address).Prefixes()...)
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if autoRouteUseSubRanges && !underNetworkExtension {
|
} else if autoRouteUseSubRanges && !underNetworkExtension {
|
||||||
inet6Ranges = []netip.Prefix{
|
inet6Ranges = []netip.Prefix{
|
||||||
netip.PrefixFrom(netip.AddrFrom16([16]byte{0: 1}), 8),
|
netip.PrefixFrom(netip.AddrFrom16([16]byte{0: 1}), 8),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue