bool OfflinePacketFilter::matches_filter(const uint8_t* buffer, uint32_t total_sz) const { pcap_pkthdr header; memset(&header, 0, sizeof(header)); header.len = total_sz; header.caplen = total_sz; return pcap_offline_filter(&filter_, &header, buffer) != 0; }
void processpacket(struct metric *metrics, struct pcap_pkthdr *header, const u_char *pkt_data) { struct metric *m; for(m=metrics; m->name; m++) { if (pcap_offline_filter(&m->compiledfilter, header, pkt_data)) { m->bytes += header->caplen; } } }