]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tcpdump.c
Added RADIUS attributes from RFC 5447
[tcpdump] / tcpdump.c
index 2bef72c8e5fc911e4b500353fd2041adc7829127..21ead64c33c781a7e93299150def29bc4a631b96 100644 (file)
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -152,7 +152,9 @@ The Regents of the University of California.  All rights reserved.\n";
 #define SIGNAL_FLUSH_PCAP SIGUSR2
 #endif
 
+#if defined(HAVE_PCAP_CREATE) || defined(_WIN32)
 static int Bflag;                      /* buffer size */
+#endif
 #ifdef HAVE_PCAP_DUMP_FTELL64
 static int64_t Cflag;                  /* rotate dump files after this many bytes */
 #else
@@ -186,13 +188,15 @@ static int Lflag;                 /* list available data link types and exit */
 static int Iflag;                      /* rfmon (monitor) mode */
 #ifdef HAVE_PCAP_SET_TSTAMP_TYPE
 static int Jflag;                      /* list available time stamp types */
-#endif
 static int jflag = -1;                 /* packet time stamp source */
+#endif
 static int pflag;                      /* don't go promiscuous */
 #ifdef HAVE_PCAP_SETDIRECTION
 static int Qflag = -1;                 /* restrict captured packet by send/receive direction */
 #endif
+#ifdef HAVE_PCAP_DUMP_FLUSH
 static int Uflag;                      /* "unbuffered" output of dump files */
+#endif
 static int Wflag;                      /* recycle output files after this number of files */
 static int WflagChars;
 static char *zflag = NULL;             /* compress each savefile using a specified command (like gzip or bzip2) */
@@ -218,7 +222,9 @@ static void cleanup(int);
 static void child_cleanup(int);
 static void print_version(void);
 static void print_usage(void);
+#ifdef HAVE_PCAP_SET_TSTAMP_TYPE
 static NORETURN void show_tstamp_types_and_exit(pcap_t *, const char *device);
+#endif
 static NORETURN void show_dlts_and_exit(pcap_t *, const char *device);
 #ifdef HAVE_PCAP_FINDALLDEVS
 static NORETURN void show_devices_and_exit(void);
@@ -1242,9 +1248,9 @@ open_interface(const char *device, netdissect_options *ndo, char *ebuf)
        status = pcap_set_tstamp_precision(pc, ndo->ndo_tstamp_precision);
        if (status != 0)
                error("%s: Can't set %ssecond time stamp precision: %s",
-                       device,
-                       tstamp_precision_to_string(ndo->ndo_tstamp_precision),
-                       pcap_statustostr(status));
+                   device,
+                   tstamp_precision_to_string(ndo->ndo_tstamp_precision),
+                   pcap_statustostr(status));
 #endif
 
 #ifdef HAVE_PCAP_SET_IMMEDIATE_MODE
@@ -1252,8 +1258,7 @@ open_interface(const char *device, netdissect_options *ndo, char *ebuf)
                status = pcap_set_immediate_mode(pc, 1);
                if (status != 0)
                        error("%s: Can't set immediate mode: %s",
-                       device,
-                       pcap_statustostr(status));
+                           device, pcap_statustostr(status));
        }
 #endif
        /*
@@ -1298,7 +1303,11 @@ open_interface(const char *device, netdissect_options *ndo, char *ebuf)
                status = pcap_set_tstamp_type(pc, jflag);
                if (status < 0)
                        error("%s: Can't set time stamp type: %s",
-                             device, pcap_statustostr(status));
+                           device, pcap_statustostr(status));
+               else if (status > 0)
+                       warning("When trying to set timestamp type '%s' on %s: %s",
+                           pcap_tstamp_type_val_to_name(jflag), device,
+                           pcap_statustostr(status));
        }
 #endif
        status = pcap_activate(pc);
@@ -1978,6 +1987,10 @@ main(int argc, char **argv)
                            RFileName, dlt_name,
                            pcap_datalink_val_to_description(dlt));
                }
+#ifdef DLT_LINUX_SLL2
+               if (dlt == DLT_LINUX_SLL2)
+                       fprintf(stderr, "Warning: interface names might be incorrect\n");
+#endif
        } else {
                /*
                 * We're doing a live capture.