Переглянути джерело

perform acl operations on cloned map

abhishek9686 10 місяців тому
батько
коміт
e36eef476a
1 змінених файлів з 4 додано та 2 видалено
  1. 4 2
      logic/acls/nodeacls/retrieve.go

+ 4 - 2
logic/acls/nodeacls/retrieve.go

@@ -3,6 +3,7 @@ package nodeacls
 import (
 	"encoding/json"
 	"fmt"
+	"maps"
 	"sync"
 
 	"github.com/gravitl/netmaker/logic/acls"
@@ -20,8 +21,9 @@ func AreNodesAllowed(networkID NetworkID, node1, node2 NodeID) bool {
 	}
 	var allowed bool
 	acls.AclMutex.Lock()
-	currNetworkACLNode1 := currentNetworkACL[acls.AclID(node1)]
-	currNetworkACLNode2 := currentNetworkACL[acls.AclID(node2)]
+	currNetAclCopy := maps.Clone(currentNetworkACL)
+	currNetworkACLNode1 := currNetAclCopy[acls.AclID(node1)]
+	currNetworkACLNode2 := currNetAclCopy[acls.AclID(node2)]
 	acls.AclMutex.Unlock()
 	allowed = currNetworkACLNode1.IsAllowed(acls.AclID(node2)) && currNetworkACLNode2.IsAllowed(acls.AclID(node1))
 	return allowed