]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-802_15_4.c
Introduce --time-stamp-precision
[tcpdump] / print-802_15_4.c
index cf5f637a7b253dcc14e2dac9a3adc6d33ab01dd5..26c28ee652aa6e71c48d68e3154e1cb043acb73b 100644 (file)
  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
+#define NETDISSECT_REWORKED
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
 #include <tcpdump-stdinc.h>
 
-#include <stdio.h>
-#include <string.h>
-
 #include "interface.h"
 #include "addrtoname.h"
 
@@ -46,7 +44,7 @@ static const char *ftypes[] = {
 };
 
 static int
-extract_header_length(u_int16_t fc)
+extract_header_length(uint16_t fc)
 {
        int len = 0;
 
@@ -89,13 +87,13 @@ extract_header_length(u_int16_t fc)
 
 
 u_int
-ieee802_15_4_if_print(struct netdissect_options *ndo,
+ieee802_15_4_if_print(netdissect_options *ndo,
                       const struct pcap_pkthdr *h, const u_char *p)
 {
        u_int caplen = h->caplen;
        int hdrlen;
-       u_int16_t fc;
-       u_int8_t seq;
+       uint16_t fc;
+       uint8_t seq;
 
        if (caplen < 3) {
                ND_PRINT((ndo, "[|802.15.4] %x", caplen));
@@ -111,7 +109,7 @@ ieee802_15_4_if_print(struct netdissect_options *ndo,
        caplen -= 3;
 
        ND_PRINT((ndo,"IEEE 802.15.4 %s packet ", ftypes[fc & 0x7]));
-       if (vflag)
+       if (ndo->ndo_vflag)
                ND_PRINT((ndo,"seq %02x ", seq));
        if (hdrlen == -1) {
                ND_PRINT((ndo,"malformed! "));
@@ -119,11 +117,11 @@ ieee802_15_4_if_print(struct netdissect_options *ndo,
        }
 
 
-       if (!vflag) {
+       if (!ndo->ndo_vflag) {
                p+= hdrlen;
                caplen -= hdrlen;
        } else {
-               u_int16_t panid = 0;
+               uint16_t panid = 0;
 
                switch ((fc >> 10) & 0x3) {
                case 0x00:
@@ -145,7 +143,7 @@ ieee802_15_4_if_print(struct netdissect_options *ndo,
                        p += 8;
                        break;
                }
-               ND_PRINT((ndo,"< ");
+               ND_PRINT((ndo,"< "));
 
                switch ((fc >> 14) & 0x3) {
                case 0x00:
@@ -167,7 +165,7 @@ ieee802_15_4_if_print(struct netdissect_options *ndo,
                                panid = EXTRACT_LE_16BITS(p);
                                p += 2;
                        }
-                        ND_PRINT((ndo,"%04x:%s ", panid, le64addr_string(p))));
+                        ND_PRINT((ndo,"%04x:%s ", panid, le64addr_string(p)));
                        p += 8;
                        break;
                }
@@ -175,8 +173,8 @@ ieee802_15_4_if_print(struct netdissect_options *ndo,
                caplen -= hdrlen;
        }
 
-       if (!suppress_default_print)
-               (ndo->ndo_default_print)(ndo, p, caplen);
+       if (!ndo->ndo_suppress_default_print)
+               ND_DEFAULTPRINT(p, caplen);
 
        return 0;
 }