diff options
| -rw-r--r-- | contrib/libpcap/INSTALL | 342 | ||||
| -rw-r--r-- | contrib/libpcap/acsite.m4 | 505 | ||||
| -rw-r--r-- | contrib/libpcap/bpf/net/bpf.h | 419 | ||||
| -rw-r--r-- | contrib/libpcap/lbl/gnuc.h | 43 | ||||
| -rw-r--r-- | contrib/libpcap/packaging/pcap.spec | 65 | ||||
| -rw-r--r-- | contrib/libpcap/rawss7.h | 105 | ||||
| -rw-r--r-- | contrib/libpcap/snprintf.c | 632 | 
7 files changed, 0 insertions, 2111 deletions
| diff --git a/contrib/libpcap/INSTALL b/contrib/libpcap/INSTALL deleted file mode 100644 index e8d8d9630e6c1..0000000000000 --- a/contrib/libpcap/INSTALL +++ /dev/null @@ -1,342 +0,0 @@ -@(#) $Header: /tcpdump/master/libpcap/INSTALL,v 1.46 2000/12/16 09:05:11 guy Exp $ (LBL) - -To build libpcap, run "./configure" (a shell script). The configure -script will determine your system attributes and generate an -appropriate Makefile from Makefile.in. Next run "make". If everything -goes well you can su to root and run "make install". However, you need -not install libpcap if you just want to build tcpdump; just make sure -the tcpdump and libpcap directory trees have the same parent -directory. - -If configure says: - -    configure: warning: cannot determine packet capture interface -    configure: warning: (see INSTALL for more info) - -then your system either does not support packet capture or your system -does support packet capture but libpcap does not support that -particular type. (If you have HP-UX, see below.) If your system uses a -packet capture not supported by libpcap, please send us patches; don't -forget to include an autoconf fragment suitable for use in -configure.in. - -It is possible to override the default packet capture type, although -the circumstance where this works are limited. For example if you have -installed bpf under SunOS 4 and wish to build a snit libpcap: - -    ./configure --with-pcap=snit - -Another example is to force a supported packet capture type in the case -where the configure scripts fails to detect it. - -You will need an ANSI C compiler to build libpcap. The configure script -will abort if your compiler is not ANSI compliant. If this happens, use -the GNU C compiler, available via anonymous ftp: - -	ftp://ftp.gnu.org/pub/gnu/gcc/ - -If you use flex, you must use version 2.4.6 or higher. The configure -script automatically detects the version of flex and will not use it -unless it is new enough. You can use "flex -V" to see what version you -have (unless it's really old). The current version of flex is available -via anonymous ftp: - -	ftp://ftp.ee.lbl.gov/flex-*.tar.Z - -As of this writing, the current version is 2.5.4. - -If you use bison, you must use flex (and visa versa). The configure -script automatically falls back to lex and yacc if both flex and bison -are not found. - -Sometimes the stock C compiler does not interact well with flex and -bison. The list of problems includes undefined references for alloca. -You can get around this by installing gcc or manually disabling flex -and bison with: - -    ./configure --without-flex --without-bison - -If your system only has AT&T lex, this is okay unless your libpcap -program uses other lex/yacc generated code. (Although it's possible to -map the yy* identifiers with a script, we use flex and bison so we -don't feel this is necessary.) - -Some systems support the Berkeley Packet Filter natively; for example -out of the box OSF and BSD/OS have bpf. If your system does not support -bpf, you will need to pick up: - -	ftp://ftp.ee.lbl.gov/bpf-*.tar.Z - -Note well: you MUST have kernel source for your operating system in -order to install bpf. An exception is SunOS 4; the bpf distribution -includes replacement kernel objects for some of the standard SunOS 4 -network device drivers. See the bpf INSTALL document for more -information. - -If you use Solaris, there is a bug with bufmod(7) that is fixed in -Solaris 2.3.2 (aka SunOS 5.3.2). Setting a snapshot length with the -broken bufmod(7) results in data be truncated from the FRONT of the -packet instead of the end.  The work around is to not set a snapshot -length but this results in performance problems since the entire packet -is copied to user space. If you must run an older version of Solaris, -there is a patch available from Sun; ask for bugid 1149065. After -installing the patch, use "setenv BUFMOD_FIXED" to enable use of -bufmod(7). However, we recommend you run a more current release of -Solaris. - -If you use the SPARCompiler, you must be careful to not use the -/usr/ucb/cc interface. If you do, you will get bogus warnings and -perhaps errors. Either make sure your path has /opt/SUNWspro/bin -before /usr/ucb or else: - -    setenv CC /opt/SUNWspro/bin/cc - -before running configure. (You might have to do a "make distclean" -if you already ran configure once). - -Also note that "make depend" won't work; while all of the known -universe uses -M, the SPARCompiler uses -xM to generate makefile -dependencies. - -If you are trying to do packet capture with a FORE ATM card, you may or -may not be able to. They usually only release their driver in object -code so unless their driver supports packet capture, there's not much -libpcap can do. - -If you get an error like: - -    tcpdump: recv_ack: bind error 0x??? - -when using DLPI, look for the DL_ERROR_ACK error return values, usually -in /usr/include/sys/dlpi.h, and find the corresponding value. - -Under {DEC OSF/1, Digital UNIX, Tru64 UNIX}, packet capture must be -enabled before it can be used.  For instructions on how to enable packet -filter support, see: - -	ftp://ftp.digital.com/pub/Digital/dec-faq/Digital-UNIX - -Look for the "How do I configure the Berkeley Packet Filter and capture -tcpdump traces?" item. - -Once you enable packet filter support, your OSF system will support bpf -natively. - -Under Ultrix, packet capture must be enabled before it can be used. For -instructions on how to enable packet filter support, see: - -	ftp://ftp.digital.com/pub/Digital/dec-faq/ultrix - -If you use HP-UX, you must have at least version 9 and either the -version of cc that supports ANSI C (cc -Aa) or else use the GNU C -compiler. You must also buy the optional streams package. If you don't -have: - -    /usr/include/sys/dlpi.h -    /usr/include/sys/dlpi_ext.h - -then you don't have the streams package. In addition, we believe you -need to install the "9.X LAN and DLPI drivers cumulative" patch -(PHNE_6855) to make the version 9 DLPI work with libpcap. - -The DLPI streams package is standard starting with HP-UX 10. - -The HP implementation of DLPI is a little bit eccentric. Unlike -Solaris, you must attach /dev/dlpi instead of the specific /dev/* -network pseudo device entry in order to capture packets. The PPA is -based on the ifnet "index" number. Under HP-UX 9, it is necessary to -read /dev/kmem and the kernel symbol file (/hp-ux). Under HP-UX 10, -DLPI can provide information for determining the PPA. It does not seem -to be possible to trace the loopback interface. Unlike other DLPI -implementations, PHYS implies MULTI and SAP and you get an error if you -try to enable more than one promiscuous mode at a time. - -It is impossible to capture outbound packets on HP-UX 9.  To do so on -HP-UX 10, you will, apparently, need a late "LAN products cumulative -patch" (at one point, it was claimed that this would be PHNE_18173 for -s700/10.20; at another point, it was claimed that the required patches -were PHNE_20892, PHNE_20725 and PHCO_10947, or newer patches), and to do -so on HP-UX 11 you will, apparently, need the latest lancommon/DLPI -patches and the latest driver patch for the interface(s) in use on HP-UX -11 (at one point, it was claimed that patches PHNE_19766, PHNE_19826, -PHNE_20008, and PHNE_20735 did the trick). - -Furthermore, on HP-UX 10, you will need to turn on a kernel switch by -doing - -	echo 'lanc_outbound_promisc_flag/W 1' | adb -w /stand/vmunix /dev/mem - -You would have to arrange that this happen on reboots; the right way to -do that would probably be to put it into an executable script file -"/sbin/init.d/outbound_promisc" and making -"/sbin/rc2.d/S350outbound_promisc" a symbolic link to that script. - -Finally, testing shows that there can't be more than one simultaneous -DLPI user per network interface. - -If you use Linux, this version of libpcap is known to compile and run -under Red Hat 4.0 with the 2.0.25 kernel.  It may work with earlier 2.X -versions but is guaranteed not to work with 1.X kernels.  Running more -than one libpcap program at a time, on a system with a 2.0.X kernel, can -cause problems since promiscuous mode is implemented by twiddling the -interface flags from the libpcap application; the packet capture -mechanism in the 2.2 and later kernels doesn't have this problem.  Also, -packet timestamps aren't very good.  This appears to be due to haphazard -handling of the timestamp in the kernel. - -Note well: there is rumoured to be a version of tcpdump floating around -called 3.0.3 that includes libpcap and is supposed to support Linux.  -You should be advised that neither the Network Research Group at LBNL -nor the Tcpdump Group ever generated a release with this version number.  -The LBNL Network Research Group notes with interest that a standard -cracker trick to get people to install trojans is to distribute bogus -packages that have a version number higher than the current release.  -They also noted with annoyance that 90% of the Linux related bug reports -they got are due to changes made to unofficial versions of their page.  -If you are having trouble but aren't using a version that came from -tcpdump.org, please try that before submitting a bug report! - -On Linux, libpcap will not work if the kernel does not have the packet -socket option enabled; see the README.linux file for information about -this. - -If you use AIX, you may not be able to build libpcap from this release. -libpcap. We do not have an AIX system in house so it's impossible for -us to test AIX patches submitted to us. We are told that you must link -against /lib/pse.exp, that you must use AIX cc or a GNU C compiler -newer than 2.7.2 and that you may need to run strload before running a -libpcap application. - -Read the README.aix file for information on installing libpcap and -configuring your system to be able to support libpcap. - -If you use NeXTSTEP, you will not be able to build libpcap from this -release. We hope to support this operating system in some future -release of libpcap. - -If you use SINIX, you should be able to build libpcap from this -release. It is known to compile and run on SINIX-Y/N 5.42 with the C-DS -V1.0 or V1.1 compiler. But note that in some releases of SINIX, yacc -emits incorrect code; if grammar.y fails to compile, change every -occurence of: - -	#ifdef YYDEBUG - -to: -	#if YYDEBUG - -Another workaround is to use flex and bison. - -If you use SCO, you might have trouble building libpcap from this -release. We do not have a machine running SCO and have not had reports -of anyone successfully building on it. Since SCO apparently supports -DLPI, it's possible the current version works. Meanwhile, SCO provides -a tcpdump binary as part of their "Network/Security Tools" package: - -    http://www.sco.com/technology/internet/goodies/#SECURITY - -There is also a README that explains how to enable packet capture. - -If you use UnixWare, you will not be able to build libpcap from this -release. We hope to support this operating system in some future -release of libpcap. Meanwhile, there appears to be an UnixWare port of -libpcap 0.0 (and tcpdump 3.0) in: - -    ftp://ftp1.freebird.org/pub/mirror/freebird/internet/systools/ - -UnixWare appears to use a hacked version of DLPI. - -If linking tcpdump fails with "Undefined: _alloca" when using bison on -a Sun4, your version of bison is broken. In any case version 1.16 or -higher is recommended (1.14 is known to cause problems 1.16 is known to -work). Either pick up a current version from: - -	ftp://ftp.gnu.org/pub/gnu/bison - -or hack around it by inserting the lines: - -	#ifdef __GNUC__ -	#define alloca __builtin_alloca -	#else -	#ifdef sparc -	#include <alloca.h> -	#else -	char *alloca (); -	#endif -	#endif - -right after the (100 line!) GNU license comment in bison.simple, remove -grammar.[co] and fire up make again. - -If you use SunOS 4, your kernel must support streams NIT. If you run a -libpcap program and it dies with: - -    /dev/nit: No such device - -You must add streams NIT support to your kernel configuration, run -config and boot the new kernel. - -If you are running a version of SunOS earlier than 4.1, you will need -to replace the Sun supplied /sys/sun{3,4,4c}/OBJ/nit_if.o with the -appropriate version from this distribution's SUNOS4 subdirectory and -build a new kernel: - -	nit_if.o.sun3-sunos4		(any flavor of sun3) -	nit_if.o.sun4c-sunos4.0.3c	(SS1, SS1+, IPC, SLC, etc.) -	nit_if.o.sun4-sunos4		(Sun4's not covered by -					    nit_if.o.sun4c-sunos4.0.3c) - -These nit replacements fix a bug that makes nit essentially unusable in -pre-SunOS 4.1.  In addition, our sun4c-sunos4.0.3c nit gives you -timestamps to the resolution of the SS-1 clock (1 us) rather than the -lousy 20ms timestamps Sun gives you  (tcpdump will print out the full -timestamp resolution if it finds it's running on a SS-1). - -FILES ------ -CHANGES		- description of differences between releases -FILES		- list of files exported as part of the distribution -INSTALL		- this file -Makefile.in	- compilation rules (input to the configure script) -README		- description of distribution -SUNOS4		- pre-SunOS 4.1 replacement kernel nit modules -VERSION		- version of this release -aclocal.m4	- autoconf macros -bpf/net		- copies of bpf_filter.c and bpf.h -bpf_filter.c	- symlink to bpf/net/bpf_filter.c -bpf_image.c	- bpf disassembly routine -config.guess	- autoconf support -config.sub	- autoconf support -configure	- configure script (run this first) -configure.in	- configure script source -etherent.c	- /etc/ethers support routines -ethertype.h	- ethernet protocol types and names definitions -gencode.c	- bpf code generation routines -gencode.h	- bpf code generation definitions -grammar.y	- filter string grammar -inet.c		- network routines -install-sh	- BSD style install script -lbl/gnuc.h	- gcc macros and defines -lbl/os-*.h	- os dependent defines and prototypes -mkdep		- construct Makefile dependency list -nametoaddr.c	- hostname to address routines -net		- symlink to bpf/net -optimize.c	- bpf optimization routines -pcap-bpf.c	- BSD Packet Filter support -pcap-dlpi.c	- Data Link Provider Interface support -pcap-enet.c	- enet support -pcap-int.h	- internal libpcap definitions -pcap-namedb.h	- public libpcap name database definitions -pcap-nit.c	- Network Interface Tap support -pcap-nit.h	- Network Interface Tap definitions -pcap-null.c	- dummy monitor support (allows offline use of libpcap) -pcap-pf.c	- Packet Filter support -pcap-pf.h	- Packet Filter definitions -pcap-snit.c	- Streams based Network Interface Tap support -pcap-snoop.c	- Snoop network monitoring support -pcap.3		- manual entry -pcap.c		- pcap utility routines -pcap.h		- public libpcap definitions -ppp.h		- Point to Point Protocol definitions -savefile.c	- offline support -scanner.l	- filter string scanner diff --git a/contrib/libpcap/acsite.m4 b/contrib/libpcap/acsite.m4 deleted file mode 100644 index 746faf1e1a4fe..0000000000000 --- a/contrib/libpcap/acsite.m4 +++ /dev/null @@ -1,505 +0,0 @@ -dnl @(#) $Header: acsite.m4,v 1.41 96/11/29 15:30:40 leres Exp $ (LBL) -dnl -dnl Copyright (c) 1995, 1996 -dnl	The Regents of the University of California.  All rights reserved. -dnl -dnl Redistribution and use in source and binary forms, with or without -dnl modification, are permitted provided that: (1) source code distributions -dnl retain the above copyright notice and this paragraph in its entirety, (2) -dnl distributions including binary code include the above copyright notice and -dnl this paragraph in its entirety in the documentation or other materials -dnl provided with the distribution, and (3) all advertising materials mentioning -dnl features or use of this software display the following acknowledgement: -dnl ``This product includes software developed by the University of California, -dnl Lawrence Berkeley Laboratory and its contributors.'' Neither the name of -dnl the University nor the names of its contributors may be used to endorse -dnl or promote products derived from this software without specific prior -dnl written permission. -dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED -dnl WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -dnl -dnl LBL autoconf macros -dnl - -dnl -dnl Determine which compiler we're using (cc or gcc) -dnl If using gcc, determine the version number -dnl If using cc, require that it support ansi prototypes -dnl If using gcc, use -O2 (otherwise use -O) -dnl If using cc, explicitly specify /usr/local/include -dnl -dnl usage: -dnl -dnl	AC_LBL_C_INIT(copt, incls) -dnl -dnl results: -dnl -dnl	$1 (copt set) -dnl	$2 (incls set) -dnl	CC -dnl	ac_cv_gcc_vers -dnl	LBL_CFLAGS -dnl -dnl XXX need to add test to make sure ac_prog_cc hasn't been called -AC_DEFUN(AC_LBL_C_INIT, -    [AC_PREREQ(2.12) -    $1=-O -    $2="" -    if test "${CFLAGS+set}" = set; then -	    LBL_CFLAGS="$CFLAGS" -    fi -    if test -z "$CC" ; then -	    case "$target_os" in - -	    bsdi*) -		    AC_CHECK_PROG(SHLICC2, shlicc2, yes, no) -		    if test $SHLICC2 = yes ; then -			    CC=shlicc2 -			    export CC -		    fi -		    ;; -	    esac -    fi -    AC_PROG_CC -    if test $ac_cv_prog_gcc = yes ; then -	    if test "$SHLICC2" = yes ; then -		    ac_cv_gcc_vers=2 -		    $1=-O2 -	    else -		    AC_MSG_CHECKING(gcc version) -		    AC_CACHE_VAL(ac_cv_gcc_vers, -			ac_cv_gcc_vers=`$CC -v 2>&1 | \ -			    sed -n -e '$s/.* //' -e '$s/\..*//p'`) -		    AC_MSG_RESULT($ac_cv_gcc_vers) -		    if test $ac_cv_gcc_vers -gt 1 ; then -			    $1=-O2 -		    fi -	    fi -    else -	    AC_MSG_CHECKING(that $CC handles ansi prototypes) -	    AC_CACHE_VAL(ac_cv_cc_ansi_prototypes, -		AC_TRY_COMPILE( -		    [#include <sys/types.h>], -		    [int frob(int, char *)], -		    ac_cv_cc_ansi_prototypes=yes, -		    ac_cv_cc_ansi_prototypes=no)) -	    AC_MSG_RESULT($ac_cv_cc_ansi_prototypes) -	    if test $ac_cv_cc_ansi_prototypes = no ; then -		    case "$target_os" in - -		    hpux*) -			    AC_MSG_CHECKING(for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE)) -			    savedcflags="$CFLAGS" -			    CFLAGS="-Aa -D_HPUX_SOURCE $CFLAGS" -			    AC_CACHE_VAL(ac_cv_cc_hpux_cc_aa, -				AC_TRY_COMPILE( -				    [#include <sys/types.h>], -				    [int frob(int, char *)], -				    ac_cv_cc_hpux_cc_aa=yes, -				    ac_cv_cc_hpux_cc_aa=no)) -			    AC_MSG_RESULT($ac_cv_cc_hpux_cc_aa) -			    if test $ac_cv_cc_hpux_cc_aa = no ; then -				    AC_MSG_ERROR(see the INSTALL for more info) -			    fi -			    CFLAGS="$savedcflags" -			    V_CCOPT="-Aa $V_CCOPT" -			    AC_DEFINE(_HPUX_SOURCE) -			    ;; - -		    *) -			    AC_MSG_ERROR(see the INSTALL for more info) -			    ;; -		    esac -	    fi -	    $2=-I/usr/local/include - -	    case "$target_os" in - -	    irix*) -		    V_CCOPT="$V_CCOPT -xansi -signed -g3" -		    ;; - -	    osf*) -		    V_CCOPT="$V_CCOPT -g3" -		    ;; - -	    ultrix*) -		    AC_MSG_CHECKING(that Ultrix $CC hacks const in prototypes) -		    AC_CACHE_VAL(ac_cv_cc_const_proto, -			AC_TRY_COMPILE( -			    [#include <sys/types.h>], -			    [struct a { int b; }; -			    void c(const struct a *)], -			    ac_cv_cc_const_proto=yes, -			    ac_cv_cc_const_proto=no)) -		    AC_MSG_RESULT($ac_cv_cc_const_proto) -		    if test $ac_cv_cc_const_proto = no ; then -			    AC_DEFINE(const,) -		    fi -		    ;; -	    esac -    fi -]) - -dnl -dnl Use pfopen.c if available and pfopen() not in standard libraries -dnl Require libpcap -dnl Look for libpcap in .. -dnl Use the installed libpcap if there is no local version -dnl -dnl usage: -dnl -dnl	AC_LBL_LIBPCAP(pcapdep, incls) -dnl -dnl results: -dnl -dnl	$1 (pcapdep set) -dnl	$2 (incls appended) -dnl	LIBS -dnl -AC_DEFUN(AC_LBL_LIBPCAP, -    [pfopen=/usr/examples/packetfilter/pfopen.c -    if test -f $pfopen ; then -	    AC_CHECK_FUNCS(pfopen) -	    if test $ac_cv_func_pfopen = "no" ; then -		    AC_MSG_RESULT(Using $pfopen) -		    LIBS="$LIBS $pfopen" -	    fi -    fi -    AC_MSG_CHECKING(for local pcap library) -    libpcap=FAIL -    lastdir=FAIL -    places=`ls .. | sed -e 's,/$,,' -e 's,^,../,' | \ -	egrep '/libpcap-[[0-9]]*\.[[0-9]]*(\.[[0-9]]*)?([[ab]][[0-9]]*)?$'` -    for dir in $places ../libpcap libpcap ; do -	    basedir=`echo $dir | sed -e 's/[[ab]][[0-9]]*$//'` -	    if test $lastdir = $basedir ; then -		    dnl skip alphas when an actual release is present -		    continue; -	    fi -	    lastdir=$dir -	    if test -r $dir/pcap.c ; then -		    libpcap=$dir/libpcap.a -		    d=$dir -		    dnl continue and select the last one that exists -	    fi -    done -    if test $libpcap = FAIL ; then -	    AC_MSG_RESULT(not found) -	    AC_CHECK_LIB(pcap, main, libpcap="-lpcap") -	    if test $libpcap = FAIL ; then -		    AC_MSG_ERROR(see the INSTALL doc for more info) -	    fi -    else -	    $1=$libpcap -	    $2="-I$d $$2" -	    AC_MSG_RESULT($libpcap) -    fi -    LIBS="$libpcap $LIBS"]) - -dnl -dnl Define RETSIGTYPE and RETSIGVAL -dnl -dnl usage: -dnl -dnl	AC_LBL_TYPE_SIGNAL -dnl -dnl results: -dnl -dnl	RETSIGTYPE (defined) -dnl	RETSIGVAL (defined) -dnl -AC_DEFUN(AC_LBL_TYPE_SIGNAL, -    [AC_TYPE_SIGNAL -    if test "$ac_cv_type_signal" = void ; then -	    AC_DEFINE(RETSIGVAL,) -    else -	    AC_DEFINE(RETSIGVAL,(0)) -    fi -    case "$target_os" in - -    irix*) -	    AC_DEFINE(_BSD_SIGNALS) -	    ;; - -    *) -	    AC_CHECK_FUNCS(sigset) -	    if test $ac_cv_func_sigset = yes ; then -		    AC_DEFINE(signal, sigset) -	    fi -	    ;; -    esac]) - -dnl -dnl If using gcc, see if fixincludes should be run -dnl -dnl usage: -dnl -dnl	AC_LBL_FIXINCLUDES -dnl -AC_DEFUN(AC_LBL_FIXINCLUDES, -    [if test $ac_cv_prog_gcc = yes ; then -	    AC_MSG_CHECKING(if fixincludes is needed) -	    AC_CACHE_VAL(ac_cv_gcc_fixincludes, -		AC_TRY_COMPILE( -		    [/* -		     * This generates a "duplicate case value" when fixincludes -		     * has not be run. -		     */ -#		include <sys/types.h> -#		include <sys/time.h> -#		include <sys/ioctl.h> -#		ifdef HAVE_SYS_IOCCOM_H -#		include <sys/ioccom.h> -#		endif], -		    [switch (0) { -		    case _IO('A', 1):; -		    case _IO('B', 1):; -		    }], -		    ac_cv_gcc_fixincludes=yes, -		    ac_cv_gcc_fixincludes=no)) -	    AC_MSG_RESULT($ac_cv_gcc_fixincludes) -	    if test $ac_cv_gcc_fixincludes = no ; then -		    # Don't cache failure -		    unset ac_cv_gcc_fixincludes -		    AC_MSG_ERROR(see the INSTALL for more info) -	    fi -    fi]) - -dnl -dnl Check for flex, default to lex -dnl Require flex 2.4 or higher -dnl Check for bison, default to yacc -dnl Default to lex/yacc if both flex and bison are not available -dnl Define the yy prefix string if using flex and bison -dnl -dnl usage: -dnl -dnl	AC_LBL_LEX_AND_YACC(lex, yacc, yyprefix) -dnl -dnl results: -dnl -dnl	$1 (lex set) -dnl	$2 (yacc appended) -dnl	$3 (optional flex and bison -P prefix) -dnl -AC_DEFUN(AC_LBL_LEX_AND_YACC, -    [AC_CHECK_PROGS($1, flex, lex) -    if test "$$1" = flex ; then -	    # The -V flag was added in 2.4 -	    AC_MSG_CHECKING(for flex 2.4 or higher) -	    AC_CACHE_VAL(ac_cv_flex_v24, -		if flex -V >/dev/null 2>&1; then -			ac_cv_flex_v24=yes -		else -			ac_cv_flex_v24=no -		fi) -	    AC_MSG_RESULT($ac_cv_flex_v24) -	    if test $ac_cv_flex_v24 = no ; then -		    s="2.4 or higher required" -		    AC_MSG_WARN(ignoring obsolete flex executable ($s)) -		    $1=lex -	    fi -    fi -    AC_CHECK_PROGS($2, bison, yacc) -    if test "$$2" = bison ; then -	    $2="$$2 -y" -    fi -    if test "$$1" != lex -a "$$2" = yacc -o "$$1" = lex -a "$$2" != yacc ; then -	    AC_MSG_WARN(don't have both flex and bison; reverting to lex/yacc) -	    $1=lex -	    $2=yacc -    fi -    if test "$$1" = flex -a -n "$3" ; then -	    $1="$$1 -P$3" -	    $2="$$2 -p $3" -    fi]) - -dnl -dnl Checks to see if union wait is used with WEXITSTATUS() -dnl -dnl usage: -dnl -dnl	AC_LBL_UNION_WAIT -dnl -dnl results: -dnl -dnl	DECLWAITSTATUS (defined) -dnl -AC_DEFUN(AC_LBL_UNION_WAIT, -    [AC_MSG_CHECKING(if union wait is used) -    AC_CACHE_VAL(ac_cv_union_wait, -	AC_TRY_COMPILE([ -#	include <sys/types.h> -#	include <sys/wait.h>], -	    [int status; -	    u_int i = WEXITSTATUS(status); -	    u_int j = waitpid(0, &status, 0);], -	    ac_cv_union_wait=no, -	    ac_cv_union_wait=yes)) -    AC_MSG_RESULT($ac_cv_union_wait) -    if test $ac_cv_union_wait = yes ; then -	    AC_DEFINE(DECLWAITSTATUS,union wait) -    else -	    AC_DEFINE(DECLWAITSTATUS,int) -    fi]) - -dnl -dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member -dnl -dnl usage: -dnl -dnl	AC_LBL_SOCKADDR_SA_LEN -dnl -dnl results: -dnl -dnl	HAVE_SOCKADDR_SA_LEN (defined) -dnl -AC_DEFUN(AC_LBL_SOCKADDR_SA_LEN, -    [AC_MSG_CHECKING(if sockaddr struct has sa_len member) -    AC_CACHE_VAL(ac_cv_sockaddr_has_sa_len, -	AC_TRY_COMPILE([ -#	include <sys/types.h> -#	include <sys/socket.h>], -	[u_int i = sizeof(((struct sockaddr *)0)->sa_len)], -	ac_cv_sockaddr_has_sa_len=yes, -	ac_cv_sockaddr_has_sa_len=no)) -    AC_MSG_RESULT($ac_cv_sockaddr_has_sa_len) -    if test $ac_cv_sockaddr_has_sa_len = yes ; then -	    AC_DEFINE(HAVE_SOCKADDR_SA_LEN) -    fi]) - -dnl -dnl Checks to see if -R is used -dnl -dnl usage: -dnl -dnl	AC_LBL_HAVE_RUN_PATH -dnl -dnl results: -dnl -dnl	ac_cv_have_run_path (yes or no) -dnl -AC_DEFUN(AC_LBL_HAVE_RUN_PATH, -    [AC_MSG_CHECKING(for ${CC-cc} -R) -    AC_CACHE_VAL(ac_cv_have_run_path, -	[echo 'main(){}' > conftest.c -	${CC-cc} -o conftest conftest.c -R/a1/b2/c3 >conftest.out 2>&1 -	if test ! -s conftest.out ; then -		ac_cv_have_run_path=yes -	else -		ac_cv_have_run_path=no -	fi -	rm -f conftest*]) -    AC_MSG_RESULT($ac_cv_have_run_path) -    ]) - -dnl -dnl Checks to see if unaligned memory accesses fail -dnl -dnl usage: -dnl -dnl	AC_LBL_UNALIGNED_ACCESS -dnl -dnl results: -dnl -dnl	LBL_ALIGN (DEFINED) -dnl -AC_DEFUN(AC_LBL_UNALIGNED_ACCESS, -    [AC_MSG_CHECKING(if unaligned accesses fail) -    AC_CACHE_VAL(ac_cv_unaligned_fail, -	[case "$target_cpu" in - -	alpha|hp*|mips|sparc) -		ac_cv_unaligned_fail=yes -		;; - -	*) -		cat >conftest.c <<EOF -#		include <sys/types.h> -#		include <sys/wait.h> -#		include <stdio.h> -		unsigned char a[[5]] = { 1, 2, 3, 4, 5 }; -		main() { -		unsigned int i; -		pid_t pid; -		int status; -		/* avoid "core dumped" message */ -		pid = fork(); -		if (pid <  0) -			exit(2); -		if (pid > 0) { -			/* parent */ -			pid = waitpid(pid, &status, 0); -			if (pid < 0) -				exit(3); -			exit(!WIFEXITED(status)); -		} -		/* child */ -		i = *(unsigned int *)&a[[1]]; -		printf("%d\n", i); -		exit(0); -		} -EOF -		${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \ -		    conftest.c $LIBS >/dev/null 2>&1 -		if test ! -x conftest ; then -			dnl failed to compile for some reason -			ac_cv_unaligned_fail=yes -		else -			./conftest >conftest.out -			if test ! -s conftest.out ; then -				ac_cv_unaligned_fail=yes -			else -				ac_cv_unaligned_fail=no -			fi -		fi -		rm -f conftest* core core.conftest -		;; -	esac]) -    AC_MSG_RESULT($ac_cv_unaligned_fail) -    if test $ac_cv_unaligned_fail = yes ; then -	    AC_DEFINE(LBL_ALIGN) -    fi]) - -dnl -dnl If using gcc and the file .devel exists: -dnl	Compile with -g (if supported) and -Wall -dnl	If using gcc 2, do extra prototype checking -dnl	If an os prototype include exists, symlink os-proto.h to it -dnl -dnl usage: -dnl -dnl	AC_LBL_DEVEL(copt) -dnl -dnl results: -dnl -dnl	$1 (copt appended) -dnl	HAVE_OS_PROTO_H (defined) -dnl	os-proto.h (symlinked) -dnl -AC_DEFUN(AC_LBL_DEVEL, -    [rm -f os-proto.h -    if test "${LBL_CFLAGS+set}" = set; then -	    $1="$$1 ${LBL_CFLAGS}" -    fi -    if test $ac_cv_prog_gcc = yes -a -f .devel ; then -	    if test "${LBL_CFLAGS+set}" != set; then -		    if test "$ac_cv_prog_cc_g" = yes ; then -			    $1="-g $$1" -		    fi -		    $1="$$1 -Wall" -		    if test $ac_cv_gcc_vers -gt 1 ; then -			    $1="$$1 -Wmissing-prototypes -Wstrict-prototypes" -		    fi -	    fi -	    os=`echo $target_os | sed -e 's/\([[0-9]][[0-9]]*\)[[^0-9]].*$/\1/'` -	    name="lbl/os-$os.h" -	    if test -f $name ; then -		    ln -s $name os-proto.h -		    AC_DEFINE(HAVE_OS_PROTO_H) -	    else -		    AC_MSG_WARN(can't find $name) -	    fi -    fi]) diff --git a/contrib/libpcap/bpf/net/bpf.h b/contrib/libpcap/bpf/net/bpf.h deleted file mode 100644 index 8c73f3ad4f6e0..0000000000000 --- a/contrib/libpcap/bpf/net/bpf.h +++ /dev/null @@ -1,419 +0,0 @@ -/*- - * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 - *	The Regents of the University of California.  All rights reserved. - * - * This code is derived from the Stanford/CMU enet packet filter, - * (net/enet.c) distributed as part of 4.3BSD, and code contributed - * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence  - * Berkeley Laboratory. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - *    must display the following acknowledgement: - *      This product includes software developed by the University of - *      California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *      @(#)bpf.h       7.1 (Berkeley) 5/7/91 - * - * @(#) $Header: /tcpdump/master/libpcap/bpf/net/bpf.h,v 1.51 2001/11/28 05:50:05 guy Exp $ (LBL) - */ - -#ifndef BPF_MAJOR_VERSION - -/* BSD style release date */ -#define BPF_RELEASE 199606 - -typedef	int bpf_int32; -typedef	u_int bpf_u_int32; - -/* - * Alignment macros.  BPF_WORDALIGN rounds up to the next  - * even multiple of BPF_ALIGNMENT.  - */ -#ifndef __NetBSD__ -#define BPF_ALIGNMENT sizeof(bpf_int32) -#else -#define BPF_ALIGNMENT sizeof(long) -#endif -#define BPF_WORDALIGN(x) (((x)+(BPF_ALIGNMENT-1))&~(BPF_ALIGNMENT-1)) - -#define BPF_MAXINSNS 512 -#define BPF_MAXBUFSIZE 0x8000 -#define BPF_MINBUFSIZE 32 - -/* - *  Structure for BIOCSETF. - */ -struct bpf_program { -	u_int bf_len; -	struct bpf_insn *bf_insns; -}; -  -/* - * Struct returned by BIOCGSTATS. - */ -struct bpf_stat { -	u_int bs_recv;		/* number of packets received */ -	u_int bs_drop;		/* number of packets dropped */ -}; - -/* - * Struct return by BIOCVERSION.  This represents the version number of  - * the filter language described by the instruction encodings below. - * bpf understands a program iff kernel_major == filter_major && - * kernel_minor >= filter_minor, that is, if the value returned by the - * running kernel has the same major number and a minor number equal - * equal to or less than the filter being downloaded.  Otherwise, the - * results are undefined, meaning an error may be returned or packets - * may be accepted haphazardly. - * It has nothing to do with the source code version. - */ -struct bpf_version { -	u_short bv_major; -	u_short bv_minor; -}; -/* Current version number of filter architecture. */ -#define BPF_MAJOR_VERSION 1 -#define BPF_MINOR_VERSION 1 - -/* - * BPF ioctls - * - * The first set is for compatibility with Sun's pcc style - * header files.  If your using gcc, we assume that you - * have run fixincludes so the latter set should work. - */ -#if (defined(sun) || defined(ibm032)) && !defined(__GNUC__) -#define	BIOCGBLEN	_IOR(B,102, u_int) -#define	BIOCSBLEN	_IOWR(B,102, u_int) -#define	BIOCSETF	_IOW(B,103, struct bpf_program) -#define	BIOCFLUSH	_IO(B,104) -#define BIOCPROMISC	_IO(B,105) -#define	BIOCGDLT	_IOR(B,106, u_int) -#define BIOCGETIF	_IOR(B,107, struct ifreq) -#define BIOCSETIF	_IOW(B,108, struct ifreq) -#define BIOCSRTIMEOUT	_IOW(B,109, struct timeval) -#define BIOCGRTIMEOUT	_IOR(B,110, struct timeval) -#define BIOCGSTATS	_IOR(B,111, struct bpf_stat) -#define BIOCIMMEDIATE	_IOW(B,112, u_int) -#define BIOCVERSION	_IOR(B,113, struct bpf_version) -#define BIOCSTCPF	_IOW(B,114, struct bpf_program) -#define BIOCSUDPF	_IOW(B,115, struct bpf_program) -#else -#define	BIOCGBLEN	_IOR('B',102, u_int) -#define	BIOCSBLEN	_IOWR('B',102, u_int) -#define	BIOCSETF	_IOW('B',103, struct bpf_program) -#define	BIOCFLUSH	_IO('B',104) -#define BIOCPROMISC	_IO('B',105) -#define	BIOCGDLT	_IOR('B',106, u_int) -#define BIOCGETIF	_IOR('B',107, struct ifreq) -#define BIOCSETIF	_IOW('B',108, struct ifreq) -#define BIOCSRTIMEOUT	_IOW('B',109, struct timeval) -#define BIOCGRTIMEOUT	_IOR('B',110, struct timeval) -#define BIOCGSTATS	_IOR('B',111, struct bpf_stat) -#define BIOCIMMEDIATE	_IOW('B',112, u_int) -#define BIOCVERSION	_IOR('B',113, struct bpf_version) -#define BIOCSTCPF	_IOW('B',114, struct bpf_program) -#define BIOCSUDPF	_IOW('B',115, struct bpf_program) -#endif - -/* - * Structure prepended to each packet. - */ -struct bpf_hdr { -	struct timeval	bh_tstamp;	/* time stamp */ -	bpf_u_int32	bh_caplen;	/* length of captured portion */ -	bpf_u_int32	bh_datalen;	/* original length of packet */ -	u_short		bh_hdrlen;	/* length of bpf header (this struct -					   plus alignment padding) */ -}; -/* - * Because the structure above is not a multiple of 4 bytes, some compilers - * will insist on inserting padding; hence, sizeof(struct bpf_hdr) won't work. - * Only the kernel needs to know about it; applications use bh_hdrlen. - */ -#if defined(KERNEL) || defined(_KERNEL) -#define SIZEOF_BPF_HDR 18 -#endif - -/* - * Data-link level type codes. - */ - -/* - * These are the types that are the same on all platforms; on other - * platforms, a <net/bpf.h> should be supplied that defines the additional - * DLT_* codes appropriately for that platform (the BSDs, for example, - * should not just pick up this version of "bpf.h"; they should also define - * the additional DLT_* codes used by their kernels, as well as the values - * defined here - and, if the values they use for particular DLT_ types - * differ from those here, they should use their values, not the ones - * here). - */ -#define DLT_NULL	0	/* no link-layer encapsulation */ -#define DLT_EN10MB	1	/* Ethernet (10Mb) */ -#define DLT_EN3MB	2	/* Experimental Ethernet (3Mb) */ -#define DLT_AX25	3	/* Amateur Radio AX.25 */ -#define DLT_PRONET	4	/* Proteon ProNET Token Ring */ -#define DLT_CHAOS	5	/* Chaos */ -#define DLT_IEEE802	6	/* IEEE 802 Networks */ -#define DLT_ARCNET	7	/* ARCNET */ -#define DLT_SLIP	8	/* Serial Line IP */ -#define DLT_PPP		9	/* Point-to-point Protocol */ -#define DLT_FDDI	10	/* FDDI */ - -/* - * These are values from the traditional libpcap "bpf.h". - * Ports of this to particular platforms should replace these definitions - * with the ones appropriate to that platform, if the values are - * different on that platform. - */ -#define DLT_ATM_RFC1483	11	/* LLC/SNAP encapsulated atm */ -#define DLT_RAW		12	/* raw IP */ - -/* - * These are values from BSD/OS's "bpf.h". - * These are not the same as the values from the traditional libpcap - * "bpf.h"; however, these values shouldn't be generated by any - * OS other than BSD/OS, so the correct values to use here are the - * BSD/OS values. - * - * Platforms that have already assigned these values to other - * DLT_ codes, however, should give these codes the values - * from that platform, so that programs that use these codes will - * continue to compile - even though they won't correctly read - * files of these types. - */ -#define DLT_SLIP_BSDOS	15	/* BSD/OS Serial Line IP */ -#define DLT_PPP_BSDOS	16	/* BSD/OS Point-to-point Protocol */ - -#define DLT_ATM_CLIP	19	/* Linux Classical-IP over ATM */ - -/* - * These values are defined by NetBSD; other platforms should refrain from - * using them for other purposes, so that NetBSD savefiles with link - * types of 50 or 51 can be read as this type on all platforms. - */ -#define DLT_PPP_SERIAL	50	/* PPP over serial with HDLC encapsulation */ -#define DLT_PPP_ETHER	51	/* PPP over Ethernet */ - -/* - * Values between 100 and 103 are used in capture file headers as - * link-layer types corresponding to DLT_ types that differ - * between platforms; don't use those values for new DLT_ new types. - */ - -/* - * This value was defined by libpcap 0.5; platforms that have defined - * it with a different value should define it here with that value - - * a link type of 104 in a save file will be mapped to DLT_C_HDLC, - * whatever value that happens to be, so programs will correctly - * handle files with that link type regardless of the value of - * DLT_C_HDLC. - * - * The name DLT_C_HDLC was used by BSD/OS; we use that name for source - * compatibility with programs written for BSD/OS. - * - * libpcap 0.5 defined it as DLT_CHDLC; we define DLT_CHDLC as well, - * for source compatibility with programs written for libpcap 0.5. - */ -#define DLT_C_HDLC	104	/* Cisco HDLC */ -#define DLT_CHDLC	DLT_C_HDLC - -#define DLT_IEEE802_11	105	/* IEEE 802.11 wireless */ - -/* - * Values between 106 and 107 are used in capture file headers as - * link-layer types corresponding to DLT_ types that might differ - * between platforms; don't use those values for new DLT_ new types. - */ - -/* - * OpenBSD DLT_LOOP, for loopback devices; it's like DLT_NULL, except - * that the AF_ type in the link-layer header is in network byte order. - * - * OpenBSD defines it as 12, but that collides with DLT_RAW, so we - * define it as 108 here.  If OpenBSD picks up this file, it should - * define DLT_LOOP as 12 in its version, as per the comment above - - * and should not use 108 as a DLT_ value. - */ -#define DLT_LOOP	108 - -/* - * Values between 109 and 112 are used in capture file headers as - * link-layer types corresponding to DLT_ types that might differ - * between platforms; don't use those values for new DLT_ types - * other than the corresponding DLT_ types. - */ - -/* - * This is for Linux cooked sockets. - */ -#define DLT_LINUX_SLL	113 - -/* - * Apple LocalTalk hardware. - */ -#define DLT_LTALK	114 - -/* - * Acorn Econet. - */ -#define DLT_ECONET	115 - -/* - * Reserved for use with OpenBSD ipfilter. - */ -#define DLT_IPFILTER	116 - -/* - * Reserved for use in capture-file headers as a link-layer type - * corresponding to OpenBSD DLT_PFLOG; DLT_PFLOG is 17 in OpenBSD, - * but that's DLT_LANE8023 in SuSE 6.3, so we can't use 17 for it - * in capture-file headers. - */ -#define DLT_PFLOG	117 - -/* - * Registered for Cisco-internal use. - */ -#define DLT_CISCO_IOS	118 - -/* - * Reserved for 802.11 cards using the Prism II chips, with a link-layer - * header including Prism monitor mode information plus an 802.11 - * header. - */ -#define DLT_PRISM_HEADER	119 - -/* - * Reserved for Aironet 802.11 cards, with an Aironet link-layer header - * (see Doug Ambrisko's FreeBSD patches). - */ -#define DLT_AIRONET_HEADER	120 - -/* - * The instruction encodings. - */ -/* instruction classes */ -#define BPF_CLASS(code) ((code) & 0x07) -#define		BPF_LD		0x00 -#define		BPF_LDX		0x01 -#define		BPF_ST		0x02 -#define		BPF_STX		0x03 -#define		BPF_ALU		0x04 -#define		BPF_JMP		0x05 -#define		BPF_RET		0x06 -#define		BPF_MISC	0x07 - -/* ld/ldx fields */ -#define BPF_SIZE(code)	((code) & 0x18) -#define		BPF_W		0x00 -#define		BPF_H		0x08 -#define		BPF_B		0x10 -#define BPF_MODE(code)	((code) & 0xe0) -#define		BPF_IMM 	0x00 -#define		BPF_ABS		0x20 -#define		BPF_IND		0x40 -#define		BPF_MEM		0x60 -#define		BPF_LEN		0x80 -#define		BPF_MSH		0xa0 - -/* alu/jmp fields */ -#define BPF_OP(code)	((code) & 0xf0) -#define		BPF_ADD		0x00 -#define		BPF_SUB		0x10 -#define		BPF_MUL		0x20 -#define		BPF_DIV		0x30 -#define		BPF_OR		0x40 -#define		BPF_AND		0x50 -#define		BPF_LSH		0x60 -#define		BPF_RSH		0x70 -#define		BPF_NEG		0x80 -#define		BPF_JA		0x00 -#define		BPF_JEQ		0x10 -#define		BPF_JGT		0x20 -#define		BPF_JGE		0x30 -#define		BPF_JSET	0x40 -#define BPF_SRC(code)	((code) & 0x08) -#define		BPF_K		0x00 -#define		BPF_X		0x08 - -/* ret - BPF_K and BPF_X also apply */ -#define BPF_RVAL(code)	((code) & 0x18) -#define		BPF_A		0x10 - -/* misc */ -#define BPF_MISCOP(code) ((code) & 0xf8) -#define		BPF_TAX		0x00 -#define		BPF_TXA		0x80 - -/* - * The instruction data structure. - */ -struct bpf_insn { -	u_short	code; -	u_char 	jt; -	u_char 	jf; -	bpf_int32 k; -}; - -/* - * Macros for insn array initializers. - */ -#define BPF_STMT(code, k) { (u_short)(code), 0, 0, k } -#define BPF_JUMP(code, k, jt, jf) { (u_short)(code), jt, jf, k } - -#if defined(BSD) && (defined(KERNEL) || defined(_KERNEL)) -/* - * Systems based on non-BSD kernels don't have ifnet's (or they don't mean - * anything if it is in <net/if.h>) and won't work like this. - */ -# if __STDC__ -extern void bpf_tap(struct ifnet *, u_char *, u_int); -extern void bpf_mtap(struct ifnet *, struct mbuf *); -extern void bpfattach(struct ifnet *, u_int, u_int); -extern void bpfilterattach(int); -# else -extern void bpf_tap(); -extern void bpf_mtap(); -extern void bpfattach(); -extern void bpfilterattach(); -# endif /* __STDC__ */ -#endif /* BSD && (_KERNEL || KERNEL) */ -#if __STDC__ -extern int bpf_validate(struct bpf_insn *, int); -extern u_int bpf_filter(struct bpf_insn *, u_char *, u_int, u_int); -#else -extern int bpf_validate(); -extern u_int bpf_filter(); -#endif - -/* - * Number of scratch memory words (for BPF_LD|BPF_MEM and BPF_ST). - */ -#define BPF_MEMWORDS 16 - -#endif diff --git a/contrib/libpcap/lbl/gnuc.h b/contrib/libpcap/lbl/gnuc.h deleted file mode 100644 index 37d0094583737..0000000000000 --- a/contrib/libpcap/lbl/gnuc.h +++ /dev/null @@ -1,43 +0,0 @@ -/* @(#) $Header: /tcpdump/master/libpcap/lbl/gnuc.h,v 1.3.1.1 1999/10/07 23:46:41 mcr Exp $ (LBL) */ - -/* Define __P() macro, if necessary */ -#ifndef __P -#if __STDC__ -#define __P(protos) protos -#else -#define __P(protos) () -#endif -#endif - -/* inline foo */ -#ifdef __GNUC__ -#define inline __inline -#else -#define inline -#endif - -/* - * Handle new and old "dead" routine prototypes - * - * For example: - * - *	__dead void foo(void) __attribute__((volatile)); - * - */ -#ifdef __GNUC__ -#ifndef __dead -#define __dead volatile -#endif -#if __GNUC__ < 2  || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) -#ifndef __attribute__ -#define __attribute__(args) -#endif -#endif -#else -#ifndef __dead -#define __dead -#endif -#ifndef __attribute__ -#define __attribute__(args) -#endif -#endif diff --git a/contrib/libpcap/packaging/pcap.spec b/contrib/libpcap/packaging/pcap.spec deleted file mode 100644 index e9ff7cf0341b3..0000000000000 --- a/contrib/libpcap/packaging/pcap.spec +++ /dev/null @@ -1,65 +0,0 @@ -%define prefix   /usr -%define version 0.8 - -Summary: packet capture library -Name: libpcap -Version: %version -Release: 1 -Group: Development/Libraries -Copyright: BSD -Source: libpcap-0.8.tar.gz -BuildRoot: /tmp/%{name}-buildroot -URL: http://www.tcpdump.org - -%description -Packet-capture library LIBPCAP 0.8 -Now maintained by "The Tcpdump Group" -See http://www.tcpdump.org -Please send inquiries/comments/reports to tcpdump-workers@tcpdump.org - -%prep -%setup - -%post -ldconfig - -%build -CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix -make - -%install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT/usr/{lib,include} -mkdir -p $RPM_BUILD_ROOT/usr/share/man -mkdir -p $RPM_BUILD_ROOT/usr/include/net -mkdir -p $RPM_BUILD_ROOT/usr/man/man3 -make install DESTDIR=$RPM_BUILD_ROOT mandir=/usr/share/man -cd $RPM_BUILD_ROOT/usr/lib -V1=`echo 0.8 | sed 's/\\.[^\.]*$//g'` -V2=`echo 0.8 | sed 's/\\.[^\.]*\.[^\.]*$//g'` -ln -sf libpcap.so.0.8 libpcap.so.$V1 -if test "$V2" -ne "$V1"; then -    ln -sf libpcap.so.$V1 libpcap.so.$V2 -    ln -sf libpcap.so.$V2 libpcap.so -else -    ln -sf libpcap.so.$V1 libpcap.so -fi - -#install -m 755 -o root libpcap.a $RPM_BUILD_ROOT/usr/lib -#install -m 644 -o root pcap.3 $RPM_BUILD_ROOT/usr/man/man3 -#install -m 644 -o root pcap.h $RPM_BUILD_ROOT/usr/include -#install -m 644 -o root pcap-bpf.h $RPM_BUILD_ROOT/usr/include/net -#install -m 644 -o root pcap-namedb.h $RPM_BUILD_ROOT/usr/include - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) -%doc LICENSE CHANGES INSTALL.txt README.linux TODO VERSION CREDITS packaging/pcap.spec -/usr/lib/libpcap.a -/usr/share/man/man3/* -/usr/include/pcap.h -/usr/include/pcap-bpf.h -/usr/include/pcap-namedb.h -/usr/lib/libpcap.so* diff --git a/contrib/libpcap/rawss7.h b/contrib/libpcap/rawss7.h deleted file mode 100644 index 8f8d058456595..0000000000000 --- a/contrib/libpcap/rawss7.h +++ /dev/null @@ -1,105 +0,0 @@ -/* -*- Mode: c; tab-width: 8; indent-tabs-mode: 1; c-basic-offset: 8; -*- */ -/* - * Copyright (c) 2003  -	The tcpdump group. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor of the Laboratory may be used - *    to endorse or promote products derived from this software without - *    specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#) $Header: /tcpdump/master/libpcap/rawss7.h,v 1.1 2003/09/10 19:55:36 mcr Exp $ (LBL) - */ - -/* - * This file is never used in libpcap or tcpdump. It is provided as - * documentation linktypes 139 through 142 only. - */ - -/* - * Date: Tue, 09 Sep 2003 09:41:04 -0400 - * From: Jeff Morriss <jeff.morriss[AT]ulticom.com> - * To: tcpdump-workers@tcpdump.org - * Subject: [tcpdump-workers] request for LINKTYPE_ - * - * We've had some discussion over on ethereal-dev about a "fake link" or - * "raw SS7" dissector that allows dumping an arbitrary protocol into a - * file without any (otherwise necessary) lower level protocols.  The - * common example has been dumping MTP3 into a file without, well, MTP2 or - * M2PA. - * - * We want to store these protocols directly in PCAP file format because - * it's well defined and there isn't another (popular) file format for - * capturing SS7 messages that we can reverse engineer (and we want to read - * these files into Ethereal).  Rather than creating a new file format, it's - * a lot easier to just allocate a LINKTYPE_. - * - * Here is the original post thread: - * - * http://ethereal.com/lists/ethereal-dev/200306/threads.html#00200 - * - * July's thread on the subject: - *  - * http://ethereal.com/lists/ethereal-dev/200307/threads.html#00124 - * - * August's thread: - * - * http://ethereal.com/lists/ethereal-dev/200308/threads.html#00193 - * - * - * and one of the last messages--which is why I'm mailing you today: - *  - * http://ethereal.com/lists/ethereal-dev/200308/msg00193.html - * - * - * Based on the message in the last URL, I'd like to request a new - * LINKTYPE_:  LINKTYPE_RAWSS7. - * - * This packets in this file type will contain a header: - */ - -typedef struct _rawss7_hdr { -         /* NOTE: These are in network-byte order. */ -         guint32 type; -         guint16 length; -	 guint16 spare; -} rawss7_hdr; - -/* - * - * followed by protocol data for whatever protocol 'type' indicates. - * - * There was some discussion about these protocol 'type's being allocated by - * tcpdump-workers as well.  In fact it would be handy to have one place to - * allocate such numbers, so what do you think about allocating 3 more (for - * now) LINKTYPE_'s: - */ - -#define LINKTYPE_RAWSS7_MTP2	140 -#define LINKTYPE_RAWSS7_MTP3	141 -#define LINKTYPE_RAWSS7_SCCP	142 - -/* - * - *  There is no reason this can't be used to store non-SS7 protocols, but - *  it's what we need to use it for now... - * - */ diff --git a/contrib/libpcap/snprintf.c b/contrib/libpcap/snprintf.c deleted file mode 100644 index 111e78ede9183..0000000000000 --- a/contrib/libpcap/snprintf.c +++ /dev/null @@ -1,632 +0,0 @@ -/* - * Copyright (c) 1995-1999 Kungliga Tekniska Högskolan - * (Royal Institute of Technology, Stockholm, Sweden). - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * - * 3. Neither the name of the Institute nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* $Id: snprintf.c,v 1.1 2003/12/15 01:35:05 guy Exp $ */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#ifndef lint -static const char rcsid[] _U_ = -     "@(#) $Header: /tcpdump/master/libpcap/snprintf.c,v 1.1 2003/12/15 01:35:05 guy Exp $"; -#endif - -#include <stdio.h> -#include <stdarg.h> -#include <stdlib.h> -#include <string.h> -#include <ctype.h> -#include <sys/types.h> - -#include <pcap-int.h> - -enum format_flags { -    minus_flag     =  1, -    plus_flag      =  2, -    space_flag     =  4, -    alternate_flag =  8, -    zero_flag      = 16 -}; - -/* - * Common state - */ - -struct state { -  unsigned char *str; -  unsigned char *s; -  unsigned char *theend; -  size_t sz; -  size_t max_sz; -  int (*append_char)(struct state *, unsigned char); -  int (*reserve)(struct state *, size_t); -  /* XXX - methods */ -}; - -#ifndef HAVE_VSNPRINTF -static int -sn_reserve (struct state *state, size_t n) -{ -  return state->s + n > state->theend; -} - -static int -sn_append_char (struct state *state, unsigned char c) -{ -  if (sn_reserve (state, 1)) { -    return 1; -  } else { -    *state->s++ = c; -    return 0; -  } -} -#endif - -#if 0 -static int -as_reserve (struct state *state, size_t n) -{ -  if (state->s + n > state->theend) { -    int off = state->s - state->str; -    unsigned char *tmp; - -    if (state->max_sz && state->sz >= state->max_sz) -      return 1; - -    state->sz = max(state->sz * 2, state->sz + n); -    if (state->max_sz) -      state->sz = min(state->sz, state->max_sz); -    tmp = realloc (state->str, state->sz); -    if (tmp == NULL) -      return 1; -    state->str = tmp; -    state->s = state->str + off; -    state->theend = state->str + state->sz - 1; -  } -  return 0; -} - -static int -as_append_char (struct state *state, unsigned char c) -{ -  if(as_reserve (state, 1)) -    return 1; -  else { -    *state->s++ = c; -    return 0; -  } -} -#endif - -static int -append_number(struct state *state, -	      unsigned long num, unsigned base, char *rep, -	      int width, int prec, int flags, int minusp) -{ -  int len = 0; -  int i; - -  /* given precision, ignore zero flag */ -  if(prec != -1) -    flags &= ~zero_flag; -  else -    prec = 1; -  /* zero value with zero precision -> "" */ -  if(prec == 0 && num == 0) -    return 0; -  do{ -    if((*state->append_char)(state, rep[num % base])) -      return 1; -    len++; -    num /= base; -  }while(num); -  prec -= len; -  /* pad with prec zeros */ -  while(prec-- > 0){ -    if((*state->append_char)(state, '0')) -      return 1; -    len++; -  } -  /* add length of alternate prefix (added later) to len */ -  if(flags & alternate_flag && (base == 16 || base == 8)) -    len += base / 8; -  /* pad with zeros */ -  if(flags & zero_flag){ -    width -= len; -    if(minusp || (flags & space_flag) || (flags & plus_flag)) -      width--; -    while(width-- > 0){ -      if((*state->append_char)(state, '0')) -	return 1; -      len++; -    } -  } -  /* add alternate prefix */ -  if(flags & alternate_flag && (base == 16 || base == 8)){ -    if(base == 16) -      if((*state->append_char)(state, rep[10] + 23)) /* XXX */ -	return 1; -    if((*state->append_char)(state, '0')) -      return 1; -  } -  /* add sign */ -  if(minusp){ -    if((*state->append_char)(state, '-')) -      return 1; -    len++; -  } else if(flags & plus_flag) { -    if((*state->append_char)(state, '+')) -      return 1; -    len++; -  } else if(flags & space_flag) { -    if((*state->append_char)(state, ' ')) -      return 1; -    len++; -  } -  if(flags & minus_flag) -    /* swap before padding with spaces */ -    for(i = 0; i < len / 2; i++){ -      char c = state->s[-i-1]; -      state->s[-i-1] = state->s[-len+i]; -      state->s[-len+i] = c; -    } -  width -= len; -  while(width-- > 0){ -    if((*state->append_char)(state,  ' ')) -      return 1; -    len++; -  } -  if(!(flags & minus_flag)) -    /* swap after padding with spaces */ -    for(i = 0; i < len / 2; i++){ -      char c = state->s[-i-1]; -      state->s[-i-1] = state->s[-len+i]; -      state->s[-len+i] = c; -    } - -  return 0; -} - -static int -append_string (struct state *state, -	       unsigned char *arg, -	       int width, -	       int prec, -	       int flags) -{ -  if(prec != -1) -    width -= prec; -  else -    width -= strlen((char *)arg); -  if(!(flags & minus_flag)) -    while(width-- > 0) -      if((*state->append_char) (state, ' ')) -	return 1; -  if (prec != -1) { -    while (*arg && prec--) -      if ((*state->append_char) (state, *arg++)) -	return 1; -  } else { -    while (*arg) -      if ((*state->append_char) (state, *arg++)) -	return 1; -  } -  if(flags & minus_flag) -    while(width-- > 0) -      if((*state->append_char) (state, ' ')) -	return 1; -  return 0; -} - -static int -append_char(struct state *state, -	    unsigned char arg, -	    int width, -	    int flags) -{ -  while(!(flags & minus_flag) && --width > 0) -    if((*state->append_char) (state, ' ')) -      return 1; - -  if((*state->append_char) (state, arg)) -    return 1; -  while((flags & minus_flag) && --width > 0) -    if((*state->append_char) (state, ' ')) -      return 1; - -  return 0; -} - -/* - * This can't be made into a function... - */ - -#define PARSE_INT_FORMAT(res, arg, unsig) \ -if (long_flag) \ -     res = (unsig long)va_arg(arg, unsig long); \ -else if (short_flag) \ -     res = (unsig short)va_arg(arg, unsig int); \ -else \ -     res = (unsig int)va_arg(arg, unsig int) - -/* - * zyxprintf - return 0 or -1 - */ - -static int -xyzprintf (struct state *state, const char *char_format, va_list ap) -{ -  const unsigned char *format = (const unsigned char *)char_format; -  unsigned char c; - -  while((c = *format++)) { -    if (c == '%') { -      int flags      = 0; -      int width      = 0; -      int prec       = -1; -      int long_flag  = 0; -      int short_flag = 0; - -      /* flags */ -      while((c = *format++)){ -	if(c == '-') -	  flags |= minus_flag; -	else if(c == '+') -	  flags |= plus_flag; -	else if(c == ' ') -	  flags |= space_flag; -	else if(c == '#') -	  flags |= alternate_flag; -	else if(c == '0') -	  flags |= zero_flag; -	else -	  break; -      } - -      if((flags & space_flag) && (flags & plus_flag)) -	flags ^= space_flag; - -      if((flags & minus_flag) && (flags & zero_flag)) -	flags ^= zero_flag; - -      /* width */ -      if (isdigit(c)) -	do { -	  width = width * 10 + c - '0'; -	  c = *format++; -	} while(isdigit(c)); -      else if(c == '*') { -	width = va_arg(ap, int); -	c = *format++; -      } - -      /* precision */ -      if (c == '.') { -	prec = 0; -	c = *format++; -	if (isdigit(c)) -	  do { -	    prec = prec * 10 + c - '0'; -	    c = *format++; -	  } while(isdigit(c)); -	else if (c == '*') { -	  prec = va_arg(ap, int); -	  c = *format++; -	} -      } - -      /* size */ - -      if (c == 'h') { -	short_flag = 1; -	c = *format++; -      } else if (c == 'l') { -	long_flag = 1; -	c = *format++; -      } - -      switch (c) { -      case 'c' : -	if(append_char(state, va_arg(ap, int), width, flags)) -	  return -1; -	break; -      case 's' : -	if (append_string(state, -			  va_arg(ap, unsigned char*), -			  width, -			  prec, -			  flags)) -	  return -1; -	break; -      case 'd' : -      case 'i' : { -	long arg; -	unsigned long num; -	int minusp = 0; - -	PARSE_INT_FORMAT(arg, ap, signed); - -	if (arg < 0) { -	  minusp = 1; -	  num = -arg; -	} else -	  num = arg; - -	if (append_number (state, num, 10, "0123456789", -			   width, prec, flags, minusp)) -	  return -1; -	break; -      } -      case 'u' : { -	unsigned long arg; - -	PARSE_INT_FORMAT(arg, ap, unsigned); - -	if (append_number (state, arg, 10, "0123456789", -			   width, prec, flags, 0)) -	  return -1; -	break; -      } -      case 'o' : { -	unsigned long arg; - -	PARSE_INT_FORMAT(arg, ap, unsigned); - -	if (append_number (state, arg, 010, "01234567", -			   width, prec, flags, 0)) -	  return -1; -	break; -      } -      case 'x' : { -	unsigned long arg; - -	PARSE_INT_FORMAT(arg, ap, unsigned); - -	if (append_number (state, arg, 0x10, "0123456789abcdef", -			   width, prec, flags, 0)) -	  return -1; -	break; -      } -      case 'X' :{ -	unsigned long arg; - -	PARSE_INT_FORMAT(arg, ap, unsigned); - -	if (append_number (state, arg, 0x10, "0123456789ABCDEF", -			   width, prec, flags, 0)) -	  return -1; -	break; -      } -      case 'p' : { -	unsigned long arg = (unsigned long)va_arg(ap, void*); - -	if (append_number (state, arg, 0x10, "0123456789ABCDEF", -			   width, prec, flags, 0)) -	  return -1; -	break; -      } -      case 'n' : { -	int *arg = va_arg(ap, int*); -	*arg = state->s - state->str; -	break; -      } -      case '\0' : -	  --format; -	  /* FALLTHROUGH */ -      case '%' : -	if ((*state->append_char)(state, c)) -	  return -1; -	break; -      default : -	if (   (*state->append_char)(state, '%') -	    || (*state->append_char)(state, c)) -	  return -1; -	break; -      } -    } else -      if ((*state->append_char) (state, c)) -	return -1; -  } -  return 0; -} - -#ifndef HAVE_SNPRINTF -int -snprintf (char *str, size_t sz, const char *format, ...) -{ -  va_list args; -  int ret; - -  va_start(args, format); -  ret = vsnprintf (str, sz, format, args); - -#ifdef PARANOIA -  { -    int ret2; -    char *tmp; - -    tmp = malloc (sz); -    if (tmp == NULL) -      abort (); - -    ret2 = vsprintf (tmp, format, args); -    if (ret != ret2 || strcmp(str, tmp)) -      abort (); -    free (tmp); -  } -#endif - -  va_end(args); -  return ret; -} -#endif - -#if 0 -#ifndef HAVE_ASPRINTF -int -asprintf (char **ret, const char *format, ...) -{ -  va_list args; -  int val; - -  va_start(args, format); -  val = vasprintf (ret, format, args); - -#ifdef PARANOIA -  { -    int ret2; -    char *tmp; -    tmp = malloc (val + 1); -    if (tmp == NULL) -      abort (); - -    ret2 = vsprintf (tmp, format, args); -    if (val != ret2 || strcmp(*ret, tmp)) -      abort (); -    free (tmp); -  } -#endif - -  va_end(args); -  return val; -} -#endif - -#ifndef HAVE_ASNPRINTF -int -asnprintf (char **ret, size_t max_sz, const char *format, ...) -{ -  va_list args; -  int val; - -  va_start(args, format); -  val = vasnprintf (ret, max_sz, format, args); - -#ifdef PARANOIA -  { -    int ret2; -    char *tmp; -    tmp = malloc (val + 1); -    if (tmp == NULL) -      abort (); - -    ret2 = vsprintf (tmp, format, args); -    if (val != ret2 || strcmp(*ret, tmp)) -      abort (); -    free (tmp); -  } -#endif - -  va_end(args); -  return val; -} -#endif - -#ifndef HAVE_VASPRINTF -int -vasprintf (char **ret, const char *format, va_list args) -{ -  return vasnprintf (ret, 0, format, args); -} -#endif - - -#ifndef HAVE_VASNPRINTF -int -vasnprintf (char **ret, size_t max_sz, const char *format, va_list args) -{ -  int st; -  size_t len; -  struct state state; - -  state.max_sz = max_sz; -  state.sz     = 1; -  state.str    = malloc(state.sz); -  if (state.str == NULL) { -    *ret = NULL; -    return -1; -  } -  state.s = state.str; -  state.theend = state.s + state.sz - 1; -  state.append_char = as_append_char; -  state.reserve     = as_reserve; - -  st = xyzprintf (&state, format, args); -  if (st) { -    free (state.str); -    *ret = NULL; -    return -1; -  } else { -    char *tmp; - -    *state.s = '\0'; -    len = state.s - state.str; -    tmp = realloc (state.str, len+1); -    if (tmp == NULL) { -      free (state.str); -      *ret = NULL; -      return -1; -    } -    *ret = tmp; -    return len; -  } -} -#endif -#endif - -#ifndef HAVE_VSNPRINTF -int -vsnprintf (char *str, size_t sz, const char *format, va_list args) -{ -  struct state state; -  int ret; -  unsigned char *ustr = (unsigned char *)str; - -  state.max_sz = 0; -  state.sz     = sz; -  state.str    = ustr; -  state.s      = ustr; -  state.theend = ustr + sz - 1; -  state.append_char = sn_append_char; -  state.reserve     = sn_reserve; - -  ret = xyzprintf (&state, format, args); -  *state.s = '\0'; -  if (ret) -    return sz; -  else -    return state.s - state.str; -} -#endif - | 
