]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tcpdump.c
Get rid of unused variables.
[tcpdump] / tcpdump.c
index e8a89fbe0d2a3630ab106c6073e677b87b527a70..059d254671f9e253e35613b3de93d81a76f47b5c 100644 (file)
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -30,7 +30,7 @@ static const char copyright[] =
     "@(#) Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000\n\
 The Regents of the University of California.  All rights reserved.\n";
 static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.201 2003-01-23 09:05:38 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.209 2003-06-03 23:32:42 guy Exp $ (LBL)";
 #endif
 
 /*
@@ -147,9 +147,13 @@ static struct printer printers[] = {
        { cip_if_print,         DLT_ATM_CLIP },
 #endif
        { sl_if_print,          DLT_SLIP },
+#ifdef DLT_SLIP_BSDOS
        { sl_bsdos_if_print,    DLT_SLIP_BSDOS },
+#endif
        { ppp_if_print,         DLT_PPP },
+#ifdef DLT_PPP_BSDOS
        { ppp_bsdos_if_print,   DLT_PPP_BSDOS },
+#endif
        { fddi_if_print,        DLT_FDDI },
        { null_if_print,        DLT_NULL },
 #ifdef DLT_LOOP
@@ -198,6 +202,9 @@ static struct printer printers[] = {
 #endif
 #ifdef DLT_IEEE802_11_RADIO
        { ieee802_11_radio_if_print,    DLT_IEEE802_11_RADIO },
+#endif
+#ifdef DLT_ENC
+       { enc_if_print,         DLT_ENC },
 #endif
        { NULL,                 0 },
 };
@@ -535,6 +542,8 @@ main(int argc, char **argv)
                                packettype = PT_SNMP;
                        else if (strcasecmp(optarg, "cnfp") == 0)
                                packettype = PT_CNFP;
+                       else if (strcasecmp(optarg, "tftp") == 0)
+                               packettype = PT_TFTP;
                        else
                                error("unknown packet type `%s'", optarg);
                        break;
@@ -599,18 +608,24 @@ main(int argc, char **argv)
                thiszone = gmt2local(0);
 
        if (RFileName != NULL) {
+#ifndef WIN32
                /*
-                * We don't need network access, so set it back to the user id.
-                * Also, this prevents the user from reading anyone's
-                * trace file.
+                * We don't need network access, so relinquish any set-UID
+                * or set-GID privileges we have (if any).
+                *
+                * We do *not* want set-UID privileges when opening a
+                * trace file, as that might let the user read other
+                * people's trace files (especially if we're set-UID
+                * root).
                 */
-#ifndef WIN32
                setuid(getuid());
 #endif /* WIN32 */
-
                pd = pcap_open_offline(RFileName, ebuf);
                if (pd == NULL)
                        error("%s", ebuf);
+                printf("reading from file %s, link-type %u\n",
+                      RFileName,
+                      pcap_datalink(pd));
                localnet = 0;
                netmask = 0;
                if (fflag != 0)
@@ -736,8 +751,8 @@ main(int argc, char **argv)
                            program_name);
                } else
                        (void)fprintf(stderr, "%s: ", program_name);
-               (void)fprintf(stderr, "listening on %s, capture size %u bytes\n",
-                   device, snaplen);
+               (void)fprintf(stderr, "listening on %s, link-type %u, capture size %u bytes\n",
+                   device, pcap_datalink(pd), snaplen);
                (void)fflush(stderr);
        }
 #endif /* WIN32 */
@@ -996,19 +1011,26 @@ static void
 usage(void)
 {
        extern char version[];
+#ifndef HAVE_PCAP_LIB_VERSION
 #if defined(WIN32) || defined(HAVE_PCAP_VERSION)
        extern char pcap_version[];
-#else
+#else /* defined(WIN32) || defined(HAVE_PCAP_VERSION) */
        static char pcap_version[] = "unknown";
-#endif
+#endif /* defined(WIN32) || defined(HAVE_PCAP_VERSION) */
+#endif /* HAVE_PCAP_LIB_VERSION */
 
+#ifdef HAVE_PCAP_LIB_VERSION
+       (void)fprintf(stderr, "%s version %s\n", program_name, version);
+       (void)fprintf(stderr, "%s\n", pcap_lib_version());
+#else /* HAVE_PCAP_LIB_VERSION */
 #ifdef WIN32
        (void)fprintf(stderr, "%s version %s, based on tcpdump version %s\n", program_name, WDversion, version);
        (void)fprintf(stderr, "WinPcap version %s, based on libpcap version %s\n",Wpcap_version, pcap_version);
-#else  
+#else /* WIN32 */
        (void)fprintf(stderr, "%s version %s\n", program_name, version);
        (void)fprintf(stderr, "libpcap version %s\n", pcap_version);
 #endif /* WIN32 */
+#endif /* HAVE_PCAP_LIB_VERSION */
        (void)fprintf(stderr,
 "Usage: %s [-aAd" D_FLAG "eflLnNOpqRStu" U_FLAG "vxX]" B_FLAG_USAGE " [-c count] [ -C file_size ]\n", program_name);
        (void)fprintf(stderr,