1 #ifndef PDNS_DNSPCAP_HH
2 #define PDNS_DNSPCAP_HH
9 #include <netinet/ip.h>
10 #include <netinet/udp.h>
11 #include <netinet/ether.h>
14 #include <boost/format.hpp>
17 class PcapPacketReader
20 class EofException : public runtime_error
23 EofException(const string& str="") : runtime_error(str)
28 PcapPacketReader(const string& fname);
33 void checkedFread(T* ptr)
35 checkedFreadSize(ptr, sizeof(*ptr));
38 void checkedFreadSize(void* ptr, size_t size) ;
42 struct ether_header* d_ether;
44 const struct tcphdr *d_tcp;
45 const struct udphdr *d_udp;
46 const uint8_t* d_payload;
48 struct pcap_pkthdr d_pheader;
50 pcap_file_header d_pfh;
51 unsigned int d_runts, d_oversized, d_correctpackets, d_nonetheripudp;
58 class PcapPacketWriter
61 PcapPacketWriter(const string& fname, PcapPacketReader& ppr);
69 const PcapPacketReader& d_ppr;