Bläddra i källkod

make acl Rule Dst List

abhishek9686 6 månader sedan
förälder
incheckning
ee788ec446
2 ändrade filer med 12 tillägg och 10 borttagningar
  1. 10 8
      logic/acls.go
  2. 2 2
      models/acl.go

+ 10 - 8
logic/acls.go

@@ -1368,12 +1368,14 @@ func getEgressUserRulesForNode(targetnode *models.Node,
 					ip, cidr, err := net.ParseCIDR(dstI.Value)
 					if err == nil {
 						if ip.To4() != nil {
-							r.Dst = *cidr
+							r.Dst = append(r.Dst, *cidr)
 						} else {
-							r.Dst6 = *cidr
+							r.Dst6 = append(r.Dst6, *cidr)
 						}
+
 					}
 				}
+
 			}
 			if aclRule, ok := rules[acl.ID]; ok {
 				aclRule.IPList = append(aclRule.IPList, r.IPList...)
@@ -1801,20 +1803,20 @@ func GetEgressRulesForNode(targetnode models.Node) (rules map[string]models.AclR
 					continue
 				}
 				if ip.To4() != nil {
-					aclRule.Dst = *cidr
+					aclRule.Dst = append(aclRule.Dst, *cidr)
 				} else {
-					aclRule.Dst6 = *cidr
+					aclRule.Dst6 = append(aclRule.Dst6, *cidr)
 				}
 
 			} else {
-				aclRule.Dst = net.IPNet{
+				aclRule.Dst = append(aclRule.Dst, net.IPNet{
 					IP:   net.IPv4zero,        // 0.0.0.0
 					Mask: net.CIDRMask(0, 32), // /0 means match all IPv4
-				}
-				aclRule.Dst6 = net.IPNet{
+				})
+				aclRule.Dst6 = append(aclRule.Dst6, net.IPNet{
 					IP:   net.IPv6zero,         // ::
 					Mask: net.CIDRMask(0, 128), // /0 means match all IPv6
-				}
+				})
 			}
 			if acl.AllowedDirection == models.TrafficDirectionBi {
 				var existsInSrcTag bool

+ 2 - 2
models/acl.go

@@ -117,7 +117,7 @@ type AclRule struct {
 	AllowedProtocol Protocol                `json:"allowed_protocols"` // tcp, udp, etc.
 	AllowedPorts    []string                `json:"allowed_ports"`
 	Direction       AllowedTrafficDirection `json:"direction"` // single or two-way
-	Dst             net.IPNet               `json:"dst"`
-	Dst6            net.IPNet               `json:"dst6"`
+	Dst             []net.IPNet             `json:"dst"`
+	Dst6            []net.IPNet             `json:"dst6"`
 	Allowed         bool
 }