hdr = (const pktap_header_t *)bp;
- dlt = EXTRACT_LE_32BITS(&hdr->pkt_dlt);
- hdrlen = EXTRACT_LE_32BITS(&hdr->pkt_len);
+ dlt = EXTRACT_LE_U_4(&hdr->pkt_dlt);
+ hdrlen = EXTRACT_LE_U_4(&hdr->pkt_len);
dltname = pcap_datalink_val_to_name(dlt);
if (!ndo->ndo_qflag) {
ND_PRINT((ndo,"DLT %s (%d) len %d",
u_int length = h->len;
if_printer printer;
const pktap_header_t *hdr;
+ struct pcap_pkthdr nhdr;
if (caplen < sizeof(pktap_header_t) || length < sizeof(pktap_header_t)) {
ND_PRINT((ndo, "[|pktap]"));
return (0);
}
hdr = (const pktap_header_t *)p;
- dlt = EXTRACT_LE_32BITS(&hdr->pkt_dlt);
- hdrlen = EXTRACT_LE_32BITS(&hdr->pkt_len);
+ dlt = EXTRACT_LE_U_4(&hdr->pkt_dlt);
+ hdrlen = EXTRACT_LE_U_4(&hdr->pkt_len);
if (hdrlen < sizeof(pktap_header_t)) {
/*
* Claimed header length < structure length.
caplen -= hdrlen;
p += hdrlen;
- rectype = EXTRACT_LE_32BITS(&hdr->pkt_rectype);
+ rectype = EXTRACT_LE_U_4(&hdr->pkt_rectype);
switch (rectype) {
case PKT_REC_NONE:
case PKT_REC_PACKET:
if ((printer = lookup_printer(dlt)) != NULL) {
- hdrlen += printer(ndo, h, p);
+ nhdr = *h;
+ nhdr.caplen = caplen;
+ nhdr.len = length;
+ hdrlen += printer(ndo, &nhdr, p);
} else {
if (!ndo->ndo_eflag)
pktap_header_print(ndo, (const u_char *)hdr,