ignore linux error: File exists while add same route twice

This commit is contained in:
naison 2021-08-21 19:55:53 +08:00
parent a4695ece2d
commit 9c27a32d9f

View File

@ -1,8 +1,10 @@
package gost package gost
import ( import (
"errors"
"fmt" "fmt"
"net" "net"
"syscall"
"github.com/docker/libcontainer/netlink" "github.com/docker/libcontainer/netlink"
"github.com/go-log/log" "github.com/go-log/log"
@ -149,7 +151,7 @@ func addTunRoutes(ifName string, routes ...IPRoute) error {
} }
cmd := fmt.Sprintf("ip route add %s dev %s", route.Dest.String(), ifName) cmd := fmt.Sprintf("ip route add %s dev %s", route.Dest.String(), ifName)
log.Logf("[tun] %s", cmd) log.Logf("[tun] %s", cmd)
if err := netlink.AddRoute(route.Dest.String(), "", "", ifName); err != nil { if err := netlink.AddRoute(route.Dest.String(), "", "", ifName); err != nil && !errors.Is(err, syscall.EEXIST) {
return fmt.Errorf("%s: %v", cmd, err) return fmt.Errorf("%s: %v", cmd, err)
} }
} }