in pkg/ebpf/bpf_client.go [968:1003]
func mergeDuplicateL4Info(ports []v1alpha1.Port) []v1alpha1.Port {
uniquePorts := make(map[string]v1alpha1.Port)
var result []v1alpha1.Port
var key string
for _, p := range ports {
portKey := 0
endPortKey := 0
if p.Port != nil {
portKey = int(*p.Port)
}
if p.EndPort != nil {
endPortKey = int(*p.EndPort)
}
if p.Protocol == nil {
key = fmt.Sprintf("%s-%d-%d", "", portKey, endPortKey)
} else {
key = fmt.Sprintf("%s-%d-%d", *p.Protocol, portKey, endPortKey)
}
if _, ok := uniquePorts[key]; ok {
continue
} else {
uniquePorts[key] = p
}
}
for _, port := range uniquePorts {
result = append(result, port)
}
return result
}