in tcpdumpw/pkg/filter/filter_provider.go [34:62]
func applyFilter(
ctx context.Context,
srcFilter *string,
provider pcap.PcapFilterProvider,
mode pcap.PcapFilterMode,
) *string {
if provider == nil {
return srcFilter
}
filter, ok := provider.Get(ctx)
if !ok || filter == nil || *filter == "" {
return srcFilter
}
if srcFilter == nil || *srcFilter == "" {
*filter = stringFormatter.Format("({0})", *filter)
return filter
}
switch mode {
case pcap.PCAP_FILTER_MODE_AND:
*filter = stringFormatter.Format("{0} and ({1})", *srcFilter, *filter)
case pcap.PCAP_FILTER_MODE_OR:
*filter = stringFormatter.Format("{0} or ({1})", *srcFilter, *filter)
}
return filter
}