diff --git a/management/server/integrations/port_forwarding/controller.go b/management/server/integrations/port_forwarding/controller.go index c1f184844..5de7bb3fc 100644 --- a/management/server/integrations/port_forwarding/controller.go +++ b/management/server/integrations/port_forwarding/controller.go @@ -3,13 +3,14 @@ package port_forwarding import ( "context" + "github.com/netbirdio/netbird/management/server/peer" nbtypes "github.com/netbirdio/netbird/management/server/types" ) 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) + SendUpdate(ctx context.Context, accountID string, affectedProxyID string, affectedPeerIDs []string, accountPeers map[string]*peer.Peer) + GetProxyNetworkMaps(ctx context.Context, accountID, peerID string, accountPeers map[string]*peer.Peer) (map[string]*nbtypes.NetworkMap, error) + GetProxyNetworkMapsAll(ctx context.Context, accountID string, accountPeers map[string]*peer.Peer) (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 d93134637..43a68e425 100644 --- a/management/server/peer.go +++ b/management/server/peer.go @@ -419,7 +419,7 @@ func (am *DefaultAccountManager) GetNetworkMap(ctx context.Context, peerID strin } customZone := account.GetPeersCustomZone(ctx, am.GetDNSDomain(account.Settings)) - proxyNetworkMaps, err := am.proxyController.GetProxyNetworkMaps(ctx, account.Id, peerID) + proxyNetworkMaps, err := am.proxyController.GetProxyNetworkMaps(ctx, account.Id, peerID, account.Peers) if err != nil { log.WithContext(ctx).Errorf("failed to get proxy network maps: %v", err) return nil, err @@ -1064,7 +1064,7 @@ func (am *DefaultAccountManager) getValidatedPeerWithMap(ctx context.Context, is customZone := account.GetPeersCustomZone(ctx, am.GetDNSDomain(account.Settings)) log.WithContext(ctx).Debugf("GetPeersCustomZone: took %s", time.Since(start)) start = time.Now() - proxyNetworkMaps, err := am.proxyController.GetProxyNetworkMaps(ctx, account.Id, peer.ID) + proxyNetworkMaps, err := am.proxyController.GetProxyNetworkMaps(ctx, account.Id, peer.ID, account.Peers) if err != nil { log.WithContext(ctx).Errorf("failed to get proxy network maps: %v", err) return nil, nil, nil, err @@ -1227,7 +1227,7 @@ func (am *DefaultAccountManager) UpdateAccountPeers(ctx context.Context, account resourcePolicies := account.GetResourcePoliciesMap() routers := account.GetResourceRoutersMap() - proxyNetworkMaps, err := am.proxyController.GetProxyNetworkMapsAll(ctx, accountID) + proxyNetworkMaps, err := am.proxyController.GetProxyNetworkMapsAll(ctx, accountID, account.Peers) if err != nil { log.WithContext(ctx).Errorf("failed to get proxy network maps: %v", err) return @@ -1330,7 +1330,7 @@ func (am *DefaultAccountManager) UpdateAccountPeer(ctx context.Context, accountI return } - proxyNetworkMaps, err := am.proxyController.GetProxyNetworkMaps(ctx, accountId, peerId) + proxyNetworkMaps, err := am.proxyController.GetProxyNetworkMaps(ctx, accountId, peerId, account.Peers) if err != nil { log.WithContext(ctx).Errorf("failed to get proxy network maps: %v", err) return