]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tcpdump.c
From Albert Chin: IBM's C compiler, at least for AIX 4.3.3, doesn't
[tcpdump] / tcpdump.c
index 9bf61bbc202ff0d891e8be6061b77cd2ac59fd72..9d7a8f5fd247c2102d11182692869423a9bbdd80 100644 (file)
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -30,7 +30,7 @@ static const char copyright[] _U_ =
     "@(#) 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[] _U_ =
-    "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.248 2004-09-04 00:08:04 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.254 2005-04-20 12:41:44 hannes Exp $ (LBL)";
 #endif
 
 /*
@@ -90,7 +90,8 @@ netdissect_options *gndo = &Gndo;
 #define MAX_CFLAG      1000000
 #define MAX_CFLAG_CHARS        6
 
-int Lflag;          /* list available data link types and exit */
+int dflag;                     /* print filter code */
+int Lflag;                     /* list available data link types and exit */
 
 static int infodelay;
 static int infoprint;
@@ -105,6 +106,7 @@ static void usage(void) __attribute__((noreturn));
 static void show_dlts_and_exit(pcap_t *pd) __attribute__((noreturn));
 
 static void print_packet(u_char *, const struct pcap_pkthdr *, const u_char *);
+static void ndo_default_print(netdissect_options *, const u_char *, u_int);
 static void dump_packet_and_trunc(u_char *, const struct pcap_pkthdr *, const u_char *);
 static void dump_packet(u_char *, const struct pcap_pkthdr *, const u_char *);
 static void droproot(const char *, const char *);
@@ -217,6 +219,21 @@ static struct printer printers[] = {
 #endif
 #ifdef DLT_APPLE_IP_OVER_IEEE1394
        { ap1394_if_print,      DLT_APPLE_IP_OVER_IEEE1394 },
+#endif
+#ifdef DLT_JUNIPER_ATM1
+       { juniper_atm1_print,   DLT_JUNIPER_ATM1 },
+#endif
+#ifdef DLT_JUNIPER_ATM2
+       { juniper_atm2_print,   DLT_JUNIPER_ATM2 },
+#endif
+#ifdef DLT_JUNIPER_MFR
+       { juniper_mfr_print,    DLT_JUNIPER_MFR },
+#endif
+#ifdef DLT_JUNIPER_MLFR
+       { juniper_mlfr_print,   DLT_JUNIPER_MLFR },
+#endif
+#ifdef DLT_JUNIPER_MLPPP
+       { juniper_mlppp_print,  DLT_JUNIPER_MLPPP },
 #endif
        { NULL,                 0 },
 };
@@ -424,6 +441,7 @@ main(int argc, char **argv)
         gndo->ndo_Oflag=1;
        gndo->ndo_Rflag=1;
        gndo->ndo_dlt=-1;
+       gndo->ndo_default_print=ndo_default_print;
        gndo->ndo_printf=tcpdump_printf;
        gndo->ndo_error=ndo_error;
        gndo->ndo_warning=ndo_warning;
@@ -1265,12 +1283,18 @@ print_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *sp)
 /*
  * By default, print the specified data out in hex.
  */
-void
-default_print(register const u_char *bp, register u_int length)
+static void
+ndo_default_print(netdissect_options *ndo _U_, const u_char *bp, u_int length)
 {
        ascii_print("\n\t", bp, length); /* pass on lf and identation string */
 }
 
+void
+default_print(const u_char *bp, u_int length)
+{
+       ndo_default_print(gndo, bp, length);
+}
+
 #ifdef SIGINFO
 RETSIGTYPE requestinfo(int signo _U_)
 {