Skip to content

Commit

Permalink
do not save cache if egress route set failed (#787)
Browse files Browse the repository at this point in the history
  • Loading branch information
yabinma authored May 15, 2024
1 parent b3a6114 commit 1894bc7
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 8 deletions.
12 changes: 8 additions & 4 deletions wireguard/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
}

Expand Down
3 changes: 2 additions & 1 deletion wireguard/wireguard_darwin.go
Original file line number Diff line number Diff line change
Expand Up @@ -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" {
Expand All @@ -105,6 +105,7 @@ func SetRoutes(addrs []ifaceAddress) {
}

}
return nil
}

func (nc *NCIface) SetMTU() error {
Expand Down
5 changes: 3 additions & 2 deletions wireguard/wireguard_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -199,6 +199,7 @@ func SetRoutes(addrs []ifaceAddress) {
slog.Error("error adding route", "error", err.Error())
}
}
return nil
}

// GetDefaultGatewayIp - get current default gateway
Expand Down
3 changes: 2 additions & 1 deletion wireguard/wireguard_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -125,6 +125,7 @@ func SetRoutes(addrs []ifaceAddress) {
}
}
}
return nil
}

func getInterfaceInfo() (iList []string, err error) {
Expand Down

0 comments on commit 1894bc7

Please sign in to comment.