From: Otto Moerbeek Date: Fri, 15 May 2020 13:33:12 +0000 (+0200) Subject: Support LOOP link type X-Git-Tag: dnsdist-1.5.0-rc3~45^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F9111%2Fhead;p=thirdparty%2Fpdns.git Support LOOP link type --- diff --git a/pdns/dnspcap.cc b/pdns/dnspcap.cc index 3924a698d1..aa17af85f1 100644 --- a/pdns/dnspcap.cc +++ b/pdns/dnspcap.cc @@ -45,6 +45,9 @@ PcapPacketReader::PcapPacketReader(const string& fname) : d_fname(fname) if( d_pfh.linktype==1) { d_skipMediaHeader=sizeof(struct ether_header); } + else if( d_pfh.linktype==12) { // LOOP + d_skipMediaHeader=4; + } else if(d_pfh.linktype==101) { d_skipMediaHeader=0; } @@ -114,6 +117,16 @@ try d_ether=reinterpret_cast(d_buffer); contentCode=ntohs(d_ether->ether_type); } + else if(d_pfh.linktype == 12) { // LOOP + if (d_pheader.caplen < (d_skipMediaHeader + sizeof(*d_ip))) { + d_runts++; + continue; + } + if(d_ip->ip_v == 4) + contentCode = 0x0800; + else + contentCode = 0x86dd; + } else if(d_pfh.linktype==101) { if (d_pheader.caplen < (d_skipMediaHeader + sizeof(*d_ip))) { d_runts++;