Using WinPcap 4.1.2, I have a need to collect all of the IP-based traffic on a given interface and then filter user-selected TCP- and UDP-based "conversations" for layer 7 processing. Due to the simultaneous need to uniquely tag each incoming frame once, I cannot use the obvious solution of having multiple pcap_t devices with a unique filter for each device. Instead, I am collecting the data with a single pcap_t device, tagging each frame, and then leveraging the pcap_offline_filter API to filter each selected "conversation" in a separate thread (i.e., X conversations will be filtered in X different threads) to take full advantage of the multi-core systems this application will be running on.
The question is simple. Is the pcap_offline_filter API thread-safe?