]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Get rid of the PCAP_ENCAP_ values - if an application uses them, that
authorguy <guy>
Thu, 12 Oct 2000 03:57:13 +0000 (03:57 +0000)
committerguy <guy>
Thu, 12 Oct 2000 03:57:13 +0000 (03:57 +0000)
application won't build with any other version of libpcap, which means
that a lot of applications won't use them.  In addition,
"pcap_linktype()" needs to return DLT_ values, so that platforms that
build libpcap as a shared library won't break binary compatibility if
they update to this version of libpcap.

Instead, we map from DLT_ values to LINKTYPE_ values when writing
savefiles, and map from LINKTYPE_ values to DLT_ values when reading
savefiles, so that savefiles don't have platform-dependent DLT_ values
in the header as the link type, they have platform-independent LINKTYPE_
values.

This means we don't need to make DLT_ATM_RFC1483, DLT_RAW, etc. have
platform-independent values starting at 100 - only the values in the
savefile header need to be like that.

tcpdump.c

index b2f1972933fd1be881268d953910c078c2a1c4a5..086793949749bb4616dbee592b026d6fd8fe1ceb 100644 (file)
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -24,7 +24,7 @@ static const char copyright[] =
     "@(#) Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997\n\
 The Regents of the University of California.  All rights reserved.\n";
 static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.154 2000-09-29 04:58:53 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.155 2000-10-12 03:57:13 guy Exp $ (LBL)";
 #endif
 
 /*
@@ -98,71 +98,26 @@ struct printer {
        int type;
 };
 
-/*
- * This table checks some DLT_* codes as well as checking PCAP_ENCAP_*
- * codes, so that those DLT_* codes that aren't the same on all platforms
- * (and thus don't have values identical to the values of the corresponding
- * PCAP_ENCAP_* codes) are, at least, handled on the platform that wrote
- * the capture file.
- *
- * (This may result in two identical entries in the table, if there's
- * a DLT_* code defined to have the same value as the corresponding
- * PCAP_ENCAP_* code.  Those duplicate entries are harmless.)
- */
 static struct printer printers[] = {
-       /*
-        * PCAP_ENCAP_* codes that correspond to DLT_* codes whose values
-        * are the same on all platforms (the PCAP_ENCAP_* code values
-        * are the same as the DLT_* code values).
-        */
-       { null_if_print,        PCAP_ENCAP_NULL },
-       { ether_if_print,       PCAP_ENCAP_ETHERNET },
-       { token_if_print,       PCAP_ENCAP_TOKEN_RING },
-       { sl_if_print,          PCAP_ENCAP_SLIP },
-       { ppp_if_print,         PCAP_ENCAP_PPP },
-       { fddi_if_print,        PCAP_ENCAP_FDDI },
-
-       /*
-        * DLT_* codes that aren't the same on all platforms, or that
-        * aren't present on all platforms.
-        */
-#ifdef DLT_ATM_RFC1483
-       { atm_if_print,         DLT_ATM_RFC1483 },
-#endif
-#ifdef DLT_RAW
-       { raw_if_print,         DLT_RAW },
-#endif
-#ifdef DLT_SLIP_BSDOS
-       { sl_bsdos_if_print,    DLT_SLIP_BSDOS },
-#endif
-#ifdef DLT_PPP_BSDOS
-       { ppp_bsdos_if_print,   DLT_PPP_BSDOS },
+       { ether_if_print,       DLT_EN10MB },
+       { token_if_print,       DLT_IEEE802 },
+#ifdef DLT_LANE8023
+       { lane_if_print,        DLT_LANE8023 },
 #endif
 #ifdef DLT_CIP
        { cip_if_print,         DLT_CIP },
 #endif
-#ifdef DLT_ATM_CLIP
        { cip_if_print,         DLT_ATM_CLIP },
-#endif
-#ifdef DLT_LANE8023
-       { lane_if_print,        DLT_LANE8023 },
-#endif
-#ifdef DLT_PPP_SERIAL
+       { sl_if_print,          DLT_SLIP },
+       { sl_bsdos_if_print,    DLT_SLIP_BSDOS },
+       { ppp_if_print,         DLT_PPP },
+       { ppp_bsdos_if_print,   DLT_PPP_BSDOS },
+       { fddi_if_print,        DLT_FDDI },
+       { null_if_print,        DLT_NULL },
+       { raw_if_print,         DLT_RAW },
+       { atm_if_print,         DLT_ATM_RFC1483 },
+       { chdlc_if_print,       DLT_C_HDLC },
        { ppp_hdlc_if_print,    DLT_PPP_SERIAL },
-#endif
-
-       /*
-        * PCAP_ENCAP_* codes corresponding to DLT_* codes that aren't
-        * necessarily the same on all platforms, and PCAP_ENCAP_* codes
-        * for which there aren't DLT_* codes.
-        */
-       { atm_if_print,         PCAP_ENCAP_ATM_RFC1483 },
-       { raw_if_print,         PCAP_ENCAP_RAW },
-       { sl_bsdos_if_print,    PCAP_ENCAP_SLIP_BSDOS },
-       { ppp_bsdos_if_print,   PCAP_ENCAP_PPP_BSDOS },
-       { chdlc_if_print,       PCAP_ENCAP_C_HDLC },
-       { cip_if_print,         PCAP_ENCAP_ATM_CLIP },
-       { ppp_hdlc_if_print,    PCAP_ENCAP_PPP_HDLC },
        { NULL,                 0 },
 };