diff --git a/wireguard/types.go b/wireguard/types.go index 6b5e7b12..a7704410 100644 --- a/wireguard/types.go +++ b/wireguard/types.go @@ -150,12 +150,16 @@ func SetEgressRoutes(egressRoutes []models.EgressNetworkRoutes) { if !isSame { RemoveRoutes(addrs1.([]ifaceAddress)) - SetRoutes(addrs) - cache.EgressRouteCache.Store(config.Netclient().Host.ID.String(), addrs) + err := SetRoutes(addrs) + if err == nil { + cache.EgressRouteCache.Store(config.Netclient().Host.ID.String(), addrs) + } } } else { - SetRoutes(addrs) - cache.EgressRouteCache.Store(config.Netclient().Host.ID.String(), addrs) + err := SetRoutes(addrs) + if err == nil { + cache.EgressRouteCache.Store(config.Netclient().Host.ID.String(), addrs) + } } } diff --git a/wireguard/wireguard_darwin.go b/wireguard/wireguard_darwin.go index efa0df28..9513107a 100644 --- a/wireguard/wireguard_darwin.go +++ b/wireguard/wireguard_darwin.go @@ -83,7 +83,7 @@ func RemoveRoutes(addrs []ifaceAddress) { } // SetRoutes - sets additional routes to the interface -func SetRoutes(addrs []ifaceAddress) { +func SetRoutes(addrs []ifaceAddress) error { for _, addr := range addrs { if addr.IP == nil || addr.Network.IP == nil || addr.Network.String() == "0.0.0.0/0" || addr.Network.String() == "::/0" { @@ -105,6 +105,7 @@ func SetRoutes(addrs []ifaceAddress) { } } + return nil } func (nc *NCIface) SetMTU() error { diff --git a/wireguard/wireguard_linux.go b/wireguard/wireguard_linux.go index e9f18cc1..f104f9cd 100644 --- a/wireguard/wireguard_linux.go +++ b/wireguard/wireguard_linux.go @@ -177,11 +177,11 @@ func RemoveRoutes(addrs []ifaceAddress) { } // SetRoutes - sets additional routes to the interface -func SetRoutes(addrs []ifaceAddress) { +func SetRoutes(addrs []ifaceAddress) error { l, err := netlink.LinkByName(ncutils.GetInterfaceName()) if err != nil { slog.Error("failed to get link to interface", "error", err) - return + return err } for _, addr := range addrs { @@ -199,6 +199,7 @@ func SetRoutes(addrs []ifaceAddress) { slog.Error("error adding route", "error", err.Error()) } } + return nil } // GetDefaultGatewayIp - get current default gateway diff --git a/wireguard/wireguard_windows.go b/wireguard/wireguard_windows.go index 4478891b..43c4106c 100644 --- a/wireguard/wireguard_windows.go +++ b/wireguard/wireguard_windows.go @@ -101,7 +101,7 @@ func RemoveRoutes(addrs []ifaceAddress) { } // SetRoutes - sets additional routes to the interface -func SetRoutes(addrs []ifaceAddress) { +func SetRoutes(addrs []ifaceAddress) error { for _, addr := range addrs { if addr.IP == nil || addr.Network.IP == nil || addr.Network.String() == IPv4Network || addr.Network.String() == IPv6Network || addr.GwIP == nil { @@ -125,6 +125,7 @@ func SetRoutes(addrs []ifaceAddress) { } } } + return nil } func getInterfaceInfo() (iList []string, err error) {