From 1c6d2891abfdff80dc1e62c04f246b147da45b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Fri, 31 May 2024 18:57:38 +0800 Subject: [PATCH] Fix "Fix darwin routes" --- tun_rules.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tun_rules.go b/tun_rules.go index ce5ab31..cf9346b 100644 --- a/tun_rules.go +++ b/tun_rules.go @@ -109,9 +109,11 @@ func (o *Options) BuildAutoRouteRanges(underNetworkExtension bool) ([]netip.Pref var inet4Ranges []netip.Prefix if len(o.Inet4RouteAddress) > 0 { inet4Ranges = o.Inet4RouteAddress - for _, address := range o.Inet4Address { - if address.Bits() < 32 { - inet4Ranges = append(inet4Ranges, netipx.RangeOfPrefix(address).Prefixes()...) + if runtime.GOOS == "darwin" { + for _, address := range o.Inet4Address { + if address.Bits() < 32 { + inet4Ranges = append(inet4Ranges, address.Masked()) + } } } } else if autoRouteUseSubRanges && !underNetworkExtension { @@ -149,9 +151,11 @@ func (o *Options) BuildAutoRouteRanges(underNetworkExtension bool) ([]netip.Pref var inet6Ranges []netip.Prefix if len(o.Inet6RouteAddress) > 0 { inet6Ranges = o.Inet6RouteAddress - for _, address := range o.Inet6Address { - if address.Bits() < 32 { - inet6Ranges = append(inet6Ranges, netipx.RangeOfPrefix(address).Prefixes()...) + if runtime.GOOS == "darwin" { + for _, address := range o.Inet6Address { + if address.Bits() < 32 { + inet6Ranges = append(inet6Ranges, address.Masked()) + } } } } else if autoRouteUseSubRanges && !underNetworkExtension {