From 75ab35563a03c2115e65a750f711481be8f76ad2 Mon Sep 17 00:00:00 2001 From: bcmmbaga Date: Thu, 5 Sep 2024 19:20:09 +0300 Subject: [PATCH] Update route check by checking if group has peers Signed-off-by: bcmmbaga --- management/server/route.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/management/server/route.go b/management/server/route.go index 5512986d2..3e3842ab1 100644 --- a/management/server/route.go +++ b/management/server/route.go @@ -205,7 +205,7 @@ func (am *DefaultAccountManager) CreateRoute(ctx context.Context, accountID stri return nil, err } - if isRouteChangeAffectPeers(&newRoute) { + if isRouteChangeAffectPeers(account, &newRoute) { am.updateAccountPeers(ctx, account) } @@ -277,7 +277,7 @@ func (am *DefaultAccountManager) SaveRoute(ctx context.Context, accountID, userI return err } - if isRouteChangeAffectPeers(oldRoute) || isRouteChangeAffectPeers(routeToSave) { + if isRouteChangeAffectPeers(account, oldRoute) || isRouteChangeAffectPeers(account, routeToSave) { am.updateAccountPeers(ctx, account) } @@ -296,8 +296,8 @@ func (am *DefaultAccountManager) DeleteRoute(ctx context.Context, accountID stri return err } - routy := account.Routes[routeID] - if routy == nil { + route := account.Routes[routeID] + if route == nil { return status.Errorf(status.NotFound, "route with ID %s doesn't exist", routeID) } delete(account.Routes, routeID) @@ -307,11 +307,11 @@ func (am *DefaultAccountManager) DeleteRoute(ctx context.Context, accountID stri return err } - if isRouteChangeAffectPeers(routy) { + if isRouteChangeAffectPeers(account, route) { am.updateAccountPeers(ctx, account) } - am.StoreEvent(ctx, userID, string(routy.ID), accountID, activity.RouteRemoved, routy.EventMeta()) + am.StoreEvent(ctx, userID, string(route.ID), accountID, activity.RouteRemoved, route.EventMeta()) return nil } @@ -371,8 +371,8 @@ func getPlaceholderIP() netip.Prefix { return netip.PrefixFrom(netip.AddrFrom4([4]byte{192, 0, 2, 0}), 32) } -// isRouteChangeAffectPeers checks if the given route affects any peers. -// A route affects peers if it has distribution groups, peer groups, or a routing peer. -func isRouteChangeAffectPeers(route *route.Route) bool { - return len(route.Groups) != 0 || len(route.PeerGroups) != 0 || route.Peer != "" +// isRouteChangeAffectPeers checks if a given route affects peers by determining +// if it has a routing peer, distribution, or peer groups that include peers +func isRouteChangeAffectPeers(account *Account, route *route.Route) bool { + return anyGroupHasPeers(account, route.Groups) || anyGroupHasPeers(account, route.PeerGroups) || route.Peer != "" }