@@ -1933,6 +1933,7 @@ pcap_setfilter_linux_common(pcap_t *hand
#endif /* SO_ATTACH_FILTER */
+ printf("Using %s filter\n", handle->md.use_bpf?"kernel":"userland");
@@ -3072,23 +3073,6 @@ pcap_read_linux_mmap(pcap_t *handle, int
- /* run filter on received packet
- * If the kernel filtering is enabled we need to run the
- * filter until all the frames present into the ring
- * at filter creation time are processed.
- * In such case md.use_bpf is used as a counter for the
- * packet we need to filter.
- * Note: alternatively it could be possible to stop applying
- * the filter when the ring became empty, but it can
- * happen a lot later... */
- bp = (unsigned char*)h.raw + tp_mac;
- run_bpf = (!handle->md.use_bpf) ||
- ((handle->md.use_bpf>1) && handle->md.use_bpf--);
- if (run_bpf && handle->fcode.bf_insns &&
- (bpf_filter(handle->fcode.bf_insns, bp,
- tp_len, tp_snaplen) == 0))
- goto skip;
* Do checks based on packet direction.