Signed-off-by: bcmmbaga <bethuelmbaga12@gmail.com>
This commit is contained in:
bcmmbaga 2025-06-18 10:44:00 +03:00
parent a9006277bb
commit 82e4c14fca
No known key found for this signature in database
GPG Key ID: 511EED5C928AD547

View File

@ -1007,7 +1007,7 @@ func (a *Account) GetPeerConnectionResources(ctx context.Context, peer *nbpeer.P
// The generator function is used to generate the list of peers and firewall rules that are applicable to a given peer. // The generator function is used to generate the list of peers and firewall rules that are applicable to a given peer.
// It safe to call the generator function multiple times for same peer and different rules no duplicates will be // It safe to call the generator function multiple times for same peer and different rules no duplicates will be
// generated. The accumulator function returns the result of all the generator calls. // generated. The accumulator function returns the result of all the generator calls.
func (a *Account) connResourcesGenerator(ctx context.Context, resourcePeer *nbpeer.Peer) (func(*PolicyRule, []*nbpeer.Peer, int), func() ([]*nbpeer.Peer, []*FirewallRule)) { func (a *Account) connResourcesGenerator(ctx context.Context, targetPeer *nbpeer.Peer) (func(*PolicyRule, []*nbpeer.Peer, int), func() ([]*nbpeer.Peer, []*FirewallRule)) {
rulesExists := make(map[string]struct{}) rulesExists := make(map[string]struct{})
peersExists := make(map[string]struct{}) peersExists := make(map[string]struct{})
rules := make([]*FirewallRule, 0) rules := make([]*FirewallRule, 0)
@ -1055,7 +1055,7 @@ func (a *Account) connResourcesGenerator(ctx context.Context, resourcePeer *nbpe
continue continue
} }
rules = append(rules, expandPortsAndRanges(ctx, fr, rule, resourcePeer)...) rules = append(rules, expandPortsAndRanges(ctx, fr, rule, targetPeer)...)
} }
}, func() ([]*nbpeer.Peer, []*FirewallRule) { }, func() ([]*nbpeer.Peer, []*FirewallRule) {
return peers, rules return peers, rules
@ -1590,13 +1590,12 @@ func expandPortsAndRanges(ctx context.Context, base FirewallRule, rule *PolicyRu
var expanded []*FirewallRule var expanded []*FirewallRule
for _, port := range rule.Ports { for _, port := range rule.Ports {
fw := base fr := base
fw.Port = port fr.Port = port
expanded = append(expanded, &fw) expanded = append(expanded, &fr)
} }
for _, portRange := range rule.PortRanges { for _, portRange := range rule.PortRanges {
meetMin, err := posture.MeetsMinVersion(firewallRuleMinPortRangesVer, peer.Meta.WtVersion) meetMin, err := posture.MeetsMinVersion(firewallRuleMinPortRangesVer, peer.Meta.WtVersion)
if err == nil && !meetMin { if err == nil && !meetMin {
log.WithContext(ctx).Debugf("peer %s version doesn't support firewall rules port ranges, fallback to single ports", peer.ID) log.WithContext(ctx).Debugf("peer %s version doesn't support firewall rules port ranges, fallback to single ports", peer.ID)