FreeBSD Bugzilla – Attachment 5935 Details for
Bug 13781
[PATCH] allow tcpdump to print packet contents in ascii
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 7.92 KB, created by
fanf
on 1999-09-16 23:10:00 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
fanf
Created:
1999-09-16 23:10:00 UTC
Size:
7.92 KB
patch
obsolete
>diff -ur tcpdump/VERSION tcpdump-fanf/VERSION >--- tcpdump/VERSION Tue Sep 15 20:36:18 1998 >+++ tcpdump-fanf/VERSION Thu Sep 16 22:34:02 1999 >@@ -1 +1 @@ >-3.4 >+3.4f2 >diff -ur tcpdump/interface.h tcpdump-fanf/interface.h >--- tcpdump/interface.h Thu May 27 04:06:52 1999 >+++ tcpdump-fanf/interface.h Thu Sep 16 22:34:02 1999 >@@ -45,6 +45,7 @@ > extern int tflag; /* print packet arrival time */ > extern int vflag; /* verbose */ > extern int xflag; /* print packet in hex */ >+extern int zflag; /* print packet in ascii */ > > extern int packettype; /* as specified by -T */ > #define PT_VAT 1 /* Visual Audio Tool */ >diff -ur tcpdump/print-atm.c tcpdump-fanf/print-atm.c >--- tcpdump/print-atm.c Tue Sep 15 20:46:59 1998 >+++ tcpdump-fanf/print-atm.c Thu Sep 16 22:36:51 1999 >@@ -151,12 +151,14 @@ > p[0], p[1], p[2], /* dsap/ssap/ctrl */ > p[3], p[4], p[5], /* manufacturer's code */ > ethertype); >- if (!xflag && !qflag) >+ if (!xflag && !qflag && !zflag) > /* default_print(p, caplen); */ > llc_print(p-8,length+8,caplen+8,"000000","000000"); > } > if (xflag) > default_print(p, caplen); >+ if (zflag) >+ ascii_print(p, caplen); > out: > putchar('\n'); > } >diff -ur tcpdump/print-ether.c tcpdump-fanf/print-ether.c >--- tcpdump/print-ether.c Tue Sep 15 20:46:59 1998 >+++ tcpdump-fanf/print-ether.c Thu Sep 16 22:34:02 1999 >@@ -126,18 +126,20 @@ > printf("(LLC %s) ", > etherproto_string(htons(extracted_ethertype))); > } >- if (!xflag && !qflag) >+ if (!xflag && !qflag && !zflag) > default_print(p, caplen); > } > } else if (ether_encap_print(ether_type, p, length, caplen) == 0) { > /* ether_type not known, print raw packet */ > if (!eflag) > ether_print((u_char *)ep, length + sizeof(*ep)); >- if (!xflag && !qflag) >+ if (!xflag && !qflag && !zflag) > default_print(p, caplen); > } > if (xflag) > default_print(p, caplen); >+ if (zflag) >+ ascii_print(p, caplen); > out: > putchar('\n'); > } >diff -ur tcpdump/print-fddi.c tcpdump-fanf/print-fddi.c >--- tcpdump/print-fddi.c Tue Sep 15 20:46:59 1998 >+++ tcpdump-fanf/print-fddi.c Thu Sep 16 22:34:02 1999 >@@ -318,7 +318,7 @@ > printf("(LLC %s) ", > etherproto_string(htons(extracted_ethertype))); > } >- if (!xflag && !qflag) >+ if (!xflag && !qflag && !zflag) > default_print(p, caplen); > } > } else if ((fddip->fddi_fc & FDDIFC_CLFF) == FDDIFC_SMT) >@@ -327,11 +327,13 @@ > /* Some kinds of FDDI packet we cannot handle intelligently */ > if (!eflag) > fddi_print(fddip, length, ESRC(&ehdr), EDST(&ehdr)); >- if (!xflag && !qflag) >+ if (!xflag && !qflag && !zflag) > default_print(p, caplen); > } > if (xflag) > default_print(p, caplen); >+ if (zflag) >+ ascii_print(p, caplen); > out: > putchar('\n'); > } >diff -ur tcpdump/print-fr.c tcpdump-fanf/print-fr.c >--- tcpdump/print-fr.c Thu Jan 1 04:13:43 1998 >+++ tcpdump-fanf/print-fr.c Thu Sep 16 22:38:16 1999 >@@ -240,13 +240,16 @@ > default: > if(!eflag) > fr_hdlc_print(p, length); >- if(!xflag) >+ if(!xflag && !zflag) > default_print((const u_char *)(p + LAYER2_LEN(p)), > caplen - LAYER2_LEN(p)); > } > > if (xflag) > default_print((const u_char *)(p + LAYER2_LEN(p)), >+ caplen - LAYER2_LEN(p)); >+ if (zflag) >+ ascii_print((const u_char *)(p + LAYER2_LEN(p)), > caplen - LAYER2_LEN(p)); > out: > putchar('\n'); >diff -ur tcpdump/print-null.c tcpdump-fanf/print-null.c >--- tcpdump/print-null.c Tue Sep 15 20:46:59 1998 >+++ tcpdump-fanf/print-null.c Thu Sep 16 22:34:02 1999 >@@ -118,6 +118,8 @@ > > if (xflag) > default_print((const u_char *)ip, caplen - NULL_HDRLEN); >+ if (zflag) >+ ascii_print((const u_char *)ip, caplen - NULL_HDRLEN); > putchar('\n'); > } > >diff -ur tcpdump/print-ppp.c tcpdump-fanf/print-ppp.c >--- tcpdump/print-ppp.c Tue Sep 15 20:46:59 1998 >+++ tcpdump-fanf/print-ppp.c Thu Sep 16 22:37:06 1999 >@@ -521,7 +521,7 @@ > default: > if(!eflag) > ppp_hdlc_print(p, length); >- if(!xflag) >+ if(!xflag && !zflag) > default_print((const u_char *)(p + PPP_HDRLEN), > caplen - PPP_HDRLEN); > } >@@ -529,6 +529,9 @@ > if (xflag) > default_print((const u_char *)(p + PPP_HDRLEN), > caplen - PPP_HDRLEN); >+ if (zflag) >+ ascii_print((const u_char *)(p + PPP_HDRLEN), >+ caplen - PPP_HDRLEN); > out: > putchar('\n'); > } >@@ -606,6 +609,8 @@ > > if (xflag) > default_print((const u_char *)p, caplen - hdrlength); >+ if (zflag) >+ ascii_print((const u_char *)p, caplen - hdrlength); > out: > putchar('\n'); > } >diff -ur tcpdump/print-raw.c tcpdump-fanf/print-raw.c >--- tcpdump/print-raw.c Tue Sep 15 20:36:30 1998 >+++ tcpdump-fanf/print-raw.c Thu Sep 16 22:34:02 1999 >@@ -84,5 +84,7 @@ > > if (xflag) > default_print(p, caplen); >+ if (zflag) >+ ascii_print(p, caplen); > putchar('\n'); > } >diff -ur tcpdump/print-sl.c tcpdump-fanf/print-sl.c >--- tcpdump/print-sl.c Tue Sep 15 20:46:59 1998 >+++ tcpdump-fanf/print-sl.c Thu Sep 16 22:34:03 1999 >@@ -108,6 +108,8 @@ > > if (xflag) > default_print((u_char *)ip, caplen - SLIP_HDRLEN); >+ if (zflag) >+ ascii_print((u_char *)ip, caplen - SLIP_HDRLEN); > out: > putchar('\n'); > } >@@ -147,6 +149,8 @@ > > if (xflag) > default_print((u_char *)ip, caplen - SLIP_HDRLEN); >+ if (zflag) >+ ascii_print((u_char *)ip, caplen - SLIP_HDRLEN); > out: > putchar('\n'); > } >diff -ur tcpdump/print-token.c tcpdump-fanf/print-token.c >--- tcpdump/print-token.c Thu May 27 04:06:53 1999 >+++ tcpdump-fanf/print-token.c Thu Sep 16 22:38:48 1999 >@@ -155,11 +155,13 @@ > printf("(LLC %s) ", > etherproto_string(htons(extracted_ethertype))); > } >- if (!xflag && !qflag) >+ if (!xflag && !qflag && !zflag) > default_print(p, caplen); > } > if (xflag) > default_print(p, caplen); >+ if (zflag) >+ ascii_print(p, caplen); > out: > putchar('\n'); > } >diff -ur tcpdump/tcpdump.1 tcpdump-fanf/tcpdump.1 >--- tcpdump/tcpdump.1 Tue Dec 29 02:53:08 1998 >+++ tcpdump-fanf/tcpdump.1 Thu Sep 16 22:34:03 1999 >@@ -215,6 +215,12 @@ > The smaller of the entire packet or > .I snaplen > bytes will be printed. >+.TP >+.B \-z >+Print each packet (minus its link level header) in ascii. >+The smaller of the entire packet or >+.I snaplen >+bytes will be printed. > .IP "\fI expression\fP" > .RS > selects which packets will be dumped. If no \fIexpression\fP >diff -ur tcpdump/tcpdump.c tcpdump-fanf/tcpdump.c >--- tcpdump/tcpdump.c Thu May 27 04:06:55 1999 >+++ tcpdump-fanf/tcpdump.c Thu Sep 16 22:34:03 1999 >@@ -46,6 +46,7 @@ > #include <stdlib.h> > #include <string.h> > #include <unistd.h> >+#include <ctype.h> > > #include "interface.h" > #include "addrtoname.h" >@@ -66,6 +67,7 @@ > int tflag = 1; /* print packet arrival time */ > int vflag; /* verbose */ > int xflag; /* print packet in hex */ >+int zflag; /* print packet in ascii */ > > int packettype; > >@@ -149,7 +151,7 @@ > > opterr = 0; > while ( >- (op = getopt(argc, argv, "ac:defF:i:lnNOpqr:s:StT:vw:xY")) != EOF) >+ (op = getopt(argc, argv, "ac:defF:i:lnNOpqr:s:StT:vw:xYz")) != EOF) > switch (op) { > > case 'a': >@@ -263,6 +265,10 @@ > ++xflag; > break; > >+ case 'z': >+ ++zflag; >+ break; >+ > default: > usage(); > /* NOTREACHED */ >@@ -408,6 +414,12 @@ > * > * (BTW, please don't send us patches to print the packet out in ascii) > */ >+/* >+ * The developers of tcpdump are fascist bastards. >+ * (And fuckwits, too. (void)printf("foo")? Bunch of arse. >+ * They should be writing if (printf("foo") < 0) >+ * { perror("stdout"); exit(EXIT_FAILURE); } >+ */ > void > default_print(register const u_char *bp, register u_int length) > { >@@ -432,6 +444,35 @@ > (void)printf("\n\t\t\t"); > (void)printf(" %02x", *(u_char *)sp); > } >+} >+ >+/* >+ * print the packet out in ascii >+ */ >+void >+ascii_print(register const u_char *bp, register int length) >+{ >+ register u_int i, j; >+ >+ for (i = 0; i < length; i += 16, bp += 16) { >+ fputs("\n ", stdout); >+ for (j = 0; j < 16; j++) { >+ if (i + j < length) >+ printf(" %02X", bp[j]); >+ else >+ printf(" "); >+ if (j % 4 == 3) >+ fputs(" ", stdout); >+ } >+ fputs(" ", stdout); >+ for (j = 0; j < 16; j++) { >+ if (i + j < length) >+ putchar(isprint(bp[j]) ? bp[j] : '.'); >+ if (j % 4 == 3) >+ putchar(' '); >+ } >+ } >+ putchar('\n'); > } > > __dead void
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 13781
: 5935