diff options
Diffstat (limited to 'packaging/tcpdump-qeth')
-rw-r--r-- | packaging/tcpdump-qeth | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/packaging/tcpdump-qeth b/packaging/tcpdump-qeth deleted file mode 100644 index b5e9b89..0000000 --- a/packaging/tcpdump-qeth +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/perl -# (C)2002 by IBM Corporation, published under terms of the GPL V2 -# Author: Holger Smolinski <smolinsk@de.ibm.com> -# this file is a wrapper around tcpdump, which provides the capability -# for debugging qeth and/or HiperSocket(TM) network interfaces under -# Linux for S/390 and zSeries. tcpdump Syntax is preserved. -# Bugs: When the input pipe ends the process is not stopped. - -use Getopt::Std; - -my $incmd,$outcmd; - -getopts ("adeflnNOpqRStuvxXc:C:F:i:m:r:s:T:w:E:",\%options); - -# Check which options to replace for the reader process -if ( defined($options{'r'}) ) { - $incmd = "cat $options{'r'}"; - $filter_out = 1; -} else { - $incmd = "tcpdump -l -w -"; - $filter_out = 0; - if ( defined($options{'i'}) ) { - $incmd .= " -i ".$options{'i'}; - delete $options{'i'}; # remove -i option from option list - } - foreach $key (@ARGV) { - $incmd .= " $key"; - } -} - -$outcmd = "tcpdump -r -"; -# Rebuild arglist for the writer process -delete $options{'r'}; # remove -r option from option list -foreach $key (keys %options) { - if ((index "adeflnNOpqRStuvxX",$key) >= 0 ) { - $outcmd .= " -$key"; - } else { - $outcmd .= " -$key $options{$key}"; - } - if ( $filter_out == 1 ) { - foreach $key (@ARGV) { - $outcmd .= " $key"; - } - } -} - -open READER,"$incmd|" or die "Cannot spawn reader command $incmd"; -open WRITER,"|$outcmd" or die "Cannot spawn writer command $outcmd"; - -sysread READER,$filehdr,24 or die "Cannot read file header"; -($magic,$version_major,$version_minor,$thiszone,$sigfigs,$snaplen,$linktype) = - unpack("ISSIIII",$filehdr); -$snaplen += 14; -$filehdr = pack ("ISSIIII",($magic,$version_major,$version_minor,$thiszone,$sigfigs,$snaplen,$linktype)); -syswrite WRITER,$filehdr,24; - -$etherheaderip6 = pack ("IIIS",(0,0,0,0x8dd)); -$etherheaderip4 = pack ("IIIS",(0,0,0,0x800)); - -while ( 1 ) { - $hdrd = 0; - do {$hdrd += sysread READER, $pkthdr, 16-$hdrd, $hdrd; } while ($hdrd < 16); - ($seconds,$usecs,$caplen,$len) = unpack ("IIII",$pkthdr); - $hdrd = 0; - do {$hdrd += sysread READER, $packet,$caplen-$hdrd, $hdrd; } while ($hdrd < $caplen); - $paktype = unpack("C",$packet); - if ( $paktype & 0xf0 == 0x60 ) { - $caplen += 14; - $len += 14; - $header = $etehrheaderip6; - } elsif ($paktype >= 0x45 && $paktype <= 0x4f ) { - $caplen += 14; - $len += 14; - $header = $etherheaderip4; - } else { - $header = ""; - } - $pkthdr = pack ("IIII",($seconds,$usecs,$caplen,$len)); - syswrite WRITER,"$pkthdr$header$packet",16+$caplen; -} |