From 70e6f59d896b3b959f8192e55e0e0764b9c281de Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Fri, 15 May 2020 15:33:12 +0200 Subject: [PATCH] Support LOOP link type --- pdns/dnspcap.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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++; -- 2.39.2