func combineRulesEndpoints()

in pkg/policyendpoints/manager.go [184:200]


func combineRulesEndpoints(ingressEndpoints []policyinfo.EndpointInfo) []policyinfo.EndpointInfo {
	combinedMap := make(map[string]policyinfo.EndpointInfo)
	for _, iep := range ingressEndpoints {
		if _, ok := combinedMap[string(iep.CIDR)]; ok {
			tempIEP := combinedMap[string(iep.CIDR)]
			tempIEP.Ports = append(combinedMap[string(iep.CIDR)].Ports, iep.Ports...)
			tempIEP.Except = append(combinedMap[string(iep.CIDR)].Except, iep.Except...)
			combinedMap[string(iep.CIDR)] = tempIEP
		} else {
			combinedMap[string(iep.CIDR)] = iep
		}
	}
	if len(combinedMap) > 0 {
		return maps.Values(combinedMap)
	}
	return nil
}