chiark / gitweb /
Unmangle NBT stuff which comes out multi-line in tcpdump
authorian <ian>
Mon, 4 Mar 2002 15:31:11 +0000 (15:31 +0000)
committerian <ian>
Mon, 4 Mar 2002 15:31:11 +0000 (15:31 +0000)
Makefile
blank-ttl-ipcsum.pl
tcpdump-nomultiline.pl [new file with mode: 0755]

index 2b20b1fdebf3e8c217e57f4e80fd3447049f9496..894d05bf2f4ab2512831691ea1889699dcf11b65 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -100,11 +100,13 @@ send-%.pcap send-%.why:   ./make-probes.tcl
                --dest $(DEST) \
                 --xseed "$* $(UNIQUE)" >send-$*.why
 
-%.log:         %.pcap lnumber-tcpdump.pl blank-ttl-ipcsum.pl Makefile
-               tcpdump -tnxvvs$$(($(MTU)+500)) -r $< >$@.0.tmp
-               ./blank-ttl-ipcsum.pl <$@.0.tmp >$@.1.tmp
-               ./lnumber-tcpdump.pl <$@.1.tmp >$@.2.tmp
-               @mv -f $@.2.tmp $@
+%.log: %.pcap Makefile \
+       lnumber-tcpdump.pl blank-ttl-ipcsum.pl tcpdump-nomultiline.pl
+               tcpdump -tnxvvs$$(($(MTU)+500)) -r $< >$@.2.tmp
+               ./tcpdump-nomultiline.pl <$@.2.tmp >$@.3.tmp
+               ./blank-ttl-ipcsum.pl <$@.3.tmp >$@.4.tmp
+               ./lnumber-tcpdump.pl <$@.4.tmp >$@.5.tmp
+               @mv -f $@.5.tmp $@
 
 recv-%.diff:   send-%.log recv-%.log
                diff -uI'^[0-9]' $^ >$@ || test $$? == 1
index 07a43b63fc13b96feddd1d35e14e51b5b1c63b8d..063b36bb53ae61e166f1a5e6df08e6a2477d7e45 100755 (executable)
@@ -1,7 +1,8 @@
 #!/usr/bin/perl -p
 if ($zonk) {
-    s/^(\s\s+4\w\w\w \w{4} \w{4} \w{4}) \w\w(\w\w) \w{4} (\w{4} \w{4})$/$1 ##$2 #### $3/ or die "$_ ?";
+    s/^(\t\t\t 4\w\w\w \w{4} \w{4} \w{4}) \w\w(\w\w) \w{4} (\w{4} \w{4})$/$1 ##$2 #### $3/ or die "$_ ?";
     $zonk=0;
 } elsif (m/^ ?[^ \t]/ && s/(\(ttl )\d+(, id \d+\))$/$1###$2/) {
     $zonk=1;
 }
+# $Id$
diff --git a/tcpdump-nomultiline.pl b/tcpdump-nomultiline.pl
new file mode 100755 (executable)
index 0000000..46f1128
--- /dev/null
@@ -0,0 +1,9 @@
+#!/usr/bin/perl -p
+if (m/^\t\t\t 4[0-9a-f]{3}(?: [0-9a-f]{4}){7}/) {
+    s/^/\n/ if $glerk;
+    $glerk=0;
+} elsif ($glerk) {
+    s,^, // ,; s/\n$//;
+} elsif (m/^ ?[^ \t]/) {
+    s/\n$//; $glerk=1;
+}