From 1af39cb228eeebf2e98b75c8992d12354cd3848f Mon Sep 17 00:00:00 2001 From: adlyq Date: Wed, 1 Jun 2022 12:32:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20OpenClash=20=E5=9B=9E=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- component/process/process.go | 4 ++- listener/tun/ipstack/commons/router_linux.go | 26 +++----------------- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/component/process/process.go b/component/process/process.go index 252541cbab..32c992c4d8 100644 --- a/component/process/process.go +++ b/component/process/process.go @@ -38,7 +38,9 @@ func FindUid(network string, srcIP netip.Addr, srcPort int) (int32, error) { } func ShouldFindProcess(metadata *C.Metadata) bool { - if !enableFindProcess || metadata.Process != "" || metadata.ProcessPath != "" { + if !enableFindProcess || + metadata.Process != "" || + metadata.ProcessPath != "" { return false } for _, ip := range localIPs { diff --git a/listener/tun/ipstack/commons/router_linux.go b/listener/tun/ipstack/commons/router_linux.go index a079f535f1..37a92d2e7d 100644 --- a/listener/tun/ipstack/commons/router_linux.go +++ b/listener/tun/ipstack/commons/router_linux.go @@ -4,7 +4,6 @@ package commons import ( "fmt" - "github.com/Dreamacro/clash/common/cmd" "github.com/Dreamacro/clash/listener/tun/device" "github.com/vishvananda/netlink" "net" @@ -46,12 +45,12 @@ func ConfigInterfaceAddress(dev device.Device, addr netip.Prefix, forceMTU int, return err } - naddr, err := netlink.ParseAddr(addr.String()) + nlAddr, err := netlink.ParseAddr(addr.String()) if err != nil { return err } - if err = netlink.AddrAdd(metaLink, naddr); err != nil && err.Error() != "file exists" { + if err = netlink.AddrAdd(metaLink, nlAddr); err != nil && err.Error() != "file exists" { return err } @@ -59,23 +58,13 @@ func ConfigInterfaceAddress(dev device.Device, addr netip.Prefix, forceMTU int, return err } - if err = netlink.RouteAdd(&netlink.Route{ - LinkIndex: metaLink.Attrs().Index, - Scope: netlink.SCOPE_LINK, - Protocol: 2, - Src: ip.AsSlice(), - Table: 254, - }); err != nil && err.Error() != "file exists" { - return err - } - if autoRoute { - _ = configInterfaceRouting(metaLink.Attrs().Index, interfaceName, ip) + _ = configInterfaceRouting(metaLink.Attrs().Index, ip) } return nil } -func configInterfaceRouting(index int, interfaceName string, ip netip.Addr) error { +func configInterfaceRouting(index int, ip netip.Addr) error { for _, route := range defaultRoutes { _, ipn, err := net.ParseCIDR(route) if err != nil { @@ -97,11 +86,4 @@ func configInterfaceRouting(index int, interfaceName string, ip netip.Addr) erro return nil } -func execRouterCmd(action, route, interfaceName, linkIP, table string) error { - cmdStr := fmt.Sprintf("ip route %s %s dev %s proto kernel scope link src %s table %s", action, route, interfaceName, linkIP, table) - - _, err := cmd.ExecCmd(cmdStr) - return err -} - func CleanupRule() {}