diff --git a/management/server/integrations/port_forwarding/controller.go b/management/server/integrations/port_forwarding/controller.go index 86b00f0e2..c1f184844 100644 --- a/management/server/integrations/port_forwarding/controller.go +++ b/management/server/integrations/port_forwarding/controller.go @@ -9,6 +9,7 @@ import ( type Controller interface { SendUpdate(ctx context.Context, accountID string, affectedProxyID string, affectedPeerIDs []string) GetProxyNetworkMaps(ctx context.Context, accountID, peerID string) (map[string]*nbtypes.NetworkMap, error) + GetProxyNetworkMapsAll(ctx context.Context, accountID string) (map[string]*nbtypes.NetworkMap, error) IsPeerInIngressPorts(ctx context.Context, accountID, peerID string) (bool, error) } diff --git a/management/server/peer.go b/management/server/peer.go index 6a8a0dc63..20913d4f6 100644 --- a/management/server/peer.go +++ b/management/server/peer.go @@ -1201,15 +1201,13 @@ func (am *DefaultAccountManager) UpdateAccountPeers(ctx context.Context, account resourcePolicies := account.GetResourcePoliciesMap() routers := account.GetResourceRoutersMap() - for _, peer := range account.Peers { - startProxy := time.Now() - proxyNetworkMaps, err := am.proxyController.GetProxyNetworkMaps(ctx, accountID, peer.ID) - if err != nil { - log.WithContext(ctx).Errorf("failed to get proxy network maps: %v", err) - return - } - log.WithContext(ctx).Infof("updateAccountPeers: getProxyNetworkMaps took %s", time.Since(startProxy)) + proxyNetworkMaps, err := am.proxyController.GetProxyNetworkMapsAll(ctx, accountID) + if err != nil { + log.WithContext(ctx).Errorf("failed to get proxy network maps: %v", err) + return + } + for _, peer := range account.Peers { if !am.peersUpdateManager.HasChannel(peer.ID) { log.WithContext(ctx).Tracef("peer %s doesn't have a channel, skipping network map update", peer.ID) continue