summaryrefslogtreecommitdiffstats
path: root/contrib/libpcap
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libpcap')
-rwxr-xr-xcontrib/libpcap/ChmodBPF/ChmodBPF33
-rw-r--r--contrib/libpcap/ChmodBPF/StartupParameters.plist4
-rw-r--r--contrib/libpcap/FREEBSD-Xlist7
-rw-r--r--contrib/libpcap/FREEBSD-upgrade35
-rw-r--r--contrib/libpcap/README.Win3246
-rw-r--r--contrib/libpcap/README.aix81
-rw-r--r--contrib/libpcap/README.macosx74
-rw-r--r--contrib/libpcap/README.tru6449
-rw-r--r--contrib/libpcap/SUNOS4/nit_if.o.sparcbin5212 -> 0 bytes
-rw-r--r--contrib/libpcap/SUNOS4/nit_if.o.sun3bin4267 -> 0 bytes
-rw-r--r--contrib/libpcap/SUNOS4/nit_if.o.sun4c.4.0.3cbin5291 -> 0 bytes
-rw-r--r--contrib/libpcap/Win32/Include/Gnuc.h46
-rw-r--r--contrib/libpcap/Win32/Include/addrinfo.h146
-rw-r--r--contrib/libpcap/Win32/Include/arpa/nameser.h349
-rw-r--r--contrib/libpcap/Win32/Include/bittypes.h139
-rw-r--r--contrib/libpcap/Win32/Include/cdecl_ext.h37
-rw-r--r--contrib/libpcap/Win32/Include/inetprivate.h67
-rw-r--r--contrib/libpcap/Win32/Include/ip6_misc.h163
-rw-r--r--contrib/libpcap/Win32/Include/net/if.h230
-rw-r--r--contrib/libpcap/Win32/Include/net/netdb.h164
-rw-r--r--contrib/libpcap/Win32/Include/net/paths.h105
-rw-r--r--contrib/libpcap/Win32/Include/sockstorage.h38
-rw-r--r--contrib/libpcap/Win32/Prj/libpcap.dsp168
-rw-r--r--contrib/libpcap/Win32/Prj/libpcap.dsw29
-rw-r--r--contrib/libpcap/Win32/Src/ffs.c54
-rw-r--r--contrib/libpcap/Win32/Src/gai_strerror.c83
-rw-r--r--contrib/libpcap/Win32/Src/getaddrinfo.c1120
-rw-r--r--contrib/libpcap/Win32/Src/getnetbynm.c44
-rw-r--r--contrib/libpcap/Win32/Src/getnetent.c119
-rw-r--r--contrib/libpcap/Win32/Src/getopt.c121
-rw-r--r--contrib/libpcap/Win32/Src/getservent.c125
-rw-r--r--contrib/libpcap/Win32/Src/inet_aton.c61
-rw-r--r--contrib/libpcap/Win32/Src/inet_net.c101
-rw-r--r--contrib/libpcap/Win32/Src/inet_pton.c71
-rw-r--r--contrib/libpcap/msdos/bin2c.c43
-rw-r--r--contrib/libpcap/msdos/common.dj80
-rw-r--r--contrib/libpcap/msdos/makefile184
-rw-r--r--contrib/libpcap/msdos/makefile.dj152
-rw-r--r--contrib/libpcap/msdos/makefile.wc131
-rw-r--r--contrib/libpcap/msdos/ndis2.c860
-rw-r--r--contrib/libpcap/msdos/ndis2.h559
-rw-r--r--contrib/libpcap/msdos/ndis_0.asm188
-rw-r--r--contrib/libpcap/msdos/pkt_rx0.asm197
-rw-r--r--contrib/libpcap/msdos/pkt_rx1.s155
-rw-r--r--contrib/libpcap/msdos/pktdrvr.c1436
-rw-r--r--contrib/libpcap/msdos/pktdrvr.h153
-rw-r--r--contrib/libpcap/msdos/readme.dos162
-rw-r--r--contrib/libpcap/org.tcpdump.chmod_bpf.plist16
48 files changed, 0 insertions, 8225 deletions
diff --git a/contrib/libpcap/ChmodBPF/ChmodBPF b/contrib/libpcap/ChmodBPF/ChmodBPF
deleted file mode 100755
index ee37121..0000000
--- a/contrib/libpcap/ChmodBPF/ChmodBPF
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /bin/sh
-
-. /etc/rc.common
-
-StartService ()
-{
- #
- # Unfortunately, Mac OS X's devfs is based on the old FreeBSD
- # one, not the current one, so there's no way to configure it
- # to create BPF devices with particular owners or groups.
- # This startup item will make it owned by the admin group,
- # with permissions rw-rw----, so that anybody in the admin
- # group can use programs that capture or send raw packets.
- #
- # Change this as appropriate for your site, e.g. to make
- # it owned by a particular user without changing the permissions,
- # so only that user and the super-user can capture or send raw
- # packets, or give it the permissions rw-r-----, so that
- # only the super-user can send raw packets but anybody in the
- # admin group can capture packets.
- #
- chgrp admin /dev/bpf*
- chmod g+rw /dev/bpf*
-}
-
-StopService ()
-{
- return 0;
-}
-
-RestartService () { StartService; }
-
-RunService "$1"
diff --git a/contrib/libpcap/ChmodBPF/StartupParameters.plist b/contrib/libpcap/ChmodBPF/StartupParameters.plist
deleted file mode 100644
index cba2166..0000000
--- a/contrib/libpcap/ChmodBPF/StartupParameters.plist
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- Description = "Change BPF permissions";
- Provides = ("ChmodBPF");
-}
diff --git a/contrib/libpcap/FREEBSD-Xlist b/contrib/libpcap/FREEBSD-Xlist
deleted file mode 100644
index 948318c..0000000
--- a/contrib/libpcap/FREEBSD-Xlist
+++ /dev/null
@@ -1,7 +0,0 @@
-$FreeBSD$
-*/README.*
-*/msdos
-*/SUNOS4
-*/Win32
-*/ChmodBPF
-*/*.plist
diff --git a/contrib/libpcap/FREEBSD-upgrade b/contrib/libpcap/FREEBSD-upgrade
deleted file mode 100644
index eea75c2..0000000
--- a/contrib/libpcap/FREEBSD-upgrade
+++ /dev/null
@@ -1,35 +0,0 @@
-$FreeBSD$
-
-This directory contains virgin copies of the original distribution files
-on a "vendor" branch. Do not, under any circumstances, attempt to upgrade
-the files in this directory via patches and a cvs commit.
-
-To upgrade to a newer version of libpcap, when it is available:
- 1. Unpack the new version into an empty directory.
- [Do not make ANY changes to the files.]
-
- 2. Use the command:
- cvs import -m 'Import of libpcap v<version>' \
- -I SUNOS4 -I msdos -I Win32 -I missing \
- -I ChmodBPF -I linux-include \
- src/contrib/libpcap TCPDUMP_ORG v<version>
-
- For example, to do the import of version 0.9.4, I typed:
- cvs import -m 'Import of libpcap v0.9.4 \
- -I SUNOS4 -I msdos -I Win32 -I missing \
- -I ChmodBPF -I linux-include \
- src/contrib/libpcap TCPDUMP_ORG v0_9_4
-
- 3. Follow the instructions printed out in step 2 to resolve any
- conflicts between local FreeBSD changes and the newer version.
- 4. Bump __FreeBSD_version in sys/param.h as appropriate
-
-Do not, under any circumstances, deviate from this procedure.
-
-To make local changes to libpcap, simply patch and commit to the main
-branch (aka HEAD). Never make local changes on the TCPDUMP_ORG branch.
-
-All local changes should be submitted to "tcpdump-workers@tcpdump.org" for
-inclusion in the next vendor release of tcpdump and libpcap.
-
-sam@freebsd.org - 4 September 2006
diff --git a/contrib/libpcap/README.Win32 b/contrib/libpcap/README.Win32
deleted file mode 100644
index 503836e..0000000
--- a/contrib/libpcap/README.Win32
+++ /dev/null
@@ -1,46 +0,0 @@
-Under Win32, libpcap is integrated in the WinPcap packet capture system.
-WinPcap provides a framework that allows libpcap to capture the packets
-under Windows 95, Windows 98, Windows ME, Windows NT 4, Windows 2000
-and Windows XP.
-WinPcap binaries and source code can be found at http://winpcap.polito.it:
-they include also a developer's pack with all the necessary to compile
-libpcap-based applications under Windows.
-
-How to compile libpcap with Visual Studio
------------------------------------------
-
-In order to compile libpcap you will need:
-
-- version 6 (or higher) of Microsoft Visual Studio
-- The November 2001 (or later) edition of Microsoft Platform
-Software Development Kit (SDK), that contains some necessary includes
-for IPv6 support. You can download it from http://www.microsoft.com/sdk
-- the latest WinPcap sources from http://winpcap.polito.it/install
-
-The WinPcap source code already contains a recent (usually the latest
-stable) version of libpcap. If you need to compile a different one,
-simply download it from www.tcpdump.org and copy the sources in the
-winpcap\wpcap\libpcap folder of the WinPcap distribution. If you want to
-compile a libpcap source retrieved from the tcpdump.org Git, you will
-have to create the scanner and the grammar by hand (with lex and yacc)
-or with the cygnus makefile, since The Visual Studio project is not able
-to build them.
-
-Open the project file winpcap\wpcap\prj\wpcap.dsw with Visual Studio and
-build wpcap.dll. wpcap.lib, the library file to link with the applications,
-will be generated in winpcap\wpcap\lib\. wpcap.dll will be generated in
-winpcap\wpcap\prj\release or winpcap\wpcap\prj\debug depending on the type
-of binary that is being created.
-
-How to compile libpcap with Cygnus
-----------------------------------
-
-To build wpcap.dll, cd to the directory WPCAP/PRJ of the WinPcap source code
-distribution and type "make". libwpcap.a, the library file to link with the
-applications, will be generated in winpcap\wpcap\lib\. wpcap.dll will be
-generated in winpcap\wpcap\prj.
-
-Remember, you CANNOT use the MSVC-generated .lib files with gcc, use
-libwpcap.a instead.
-
-"make install" installs wpcap.dll in the Windows system folder.
diff --git a/contrib/libpcap/README.aix b/contrib/libpcap/README.aix
deleted file mode 100644
index b32fa58..0000000
--- a/contrib/libpcap/README.aix
+++ /dev/null
@@ -1,81 +0,0 @@
-Using BPF:
-
-(1) AIX 4.x's version of BPF is undocumented and somewhat unstandard; the
- current BPF support code includes changes that should work around
- that; it appears to compile and work on at least one AIX 4.3.3
- machine.
-
- Note that the BPF driver and the "/dev/bpf" devices might not exist
- on your machine; AIX's tcpdump loads the driver and creates the
- devices if they don't already exist. Our libpcap should do the
- same, and the configure script should detect that it's on an AIX
- system and choose BPF even if the devices aren't there.
-
-(2) If libpcap doesn't compile on your machine when configured to use
- BPF, or if the workarounds fail to make it work correctly, you
- should send to tcpdump-workers@lists.tcpdump.org a detailed bug
- report (if the compile fails, send us the compile error messages;
- if it compiles but fails to work correctly, send us as detailed as
- possible a description of the symptoms, including indications of the
- network link-layer type being wrong or time stamps being wrong).
-
- If you fix the problems yourself, please submit a patch to
-
- http://sourceforge.net/projects/libpcap/
-
- so we can incorporate them into the next release.
-
- If you don't fix the problems yourself, you can, as a workaround,
- make libpcap use DLPI instead of BPF.
-
- This can be done by specifying the flag:
-
- --with-pcap=dlpi
-
- to the "configure" script for libpcap.
-
-If you use DLPI:
-
-(1) It is a good idea to have the latest version of the DLPI driver on
- your system, since certain versions may be buggy and cause your AIX
- system to crash. DLPI is included in the fileset bos.rte.tty. I
- found that the DLPI driver that came with AIX 4.3.2 was buggy, and
- had to upgrade to bos.rte.tty 4.3.2.4:
-
- lslpp -l bos.rte.tty
-
- bos.rte.tty 4.3.2.4 COMMITTED Base TTY Support and Commands
-
- Updates for AIX filesets can be obtained from:
- ftp://service.software.ibm.com/aix/fixes/
-
- These updates can be installed with the smit program.
-
-(2) After compiling libpcap, you need to make sure that the DLPI driver
- is loaded. Type:
-
- strload -q -d dlpi
-
- If the result is:
-
- dlpi: yes
-
- then the DLPI driver is loaded correctly.
-
- If it is:
-
- dlpi: no
-
- Then you need to type:
-
- strload -f /etc/dlpi.conf
-
- Check again with strload -q -d dlpi that the dlpi driver is loaded.
-
- Alternatively, you can uncomment the lines for DLPI in
- /etc/pse.conf and reboot the machine; this way DLPI will always
- be loaded when you boot your system.
-
-(3) There appears to be a problem in the DLPI code in some versions of
- AIX, causing a warning about DL_PROMISC_MULTI failing; this might
- be responsible for DLPI not being able to capture outgoing packets.
diff --git a/contrib/libpcap/README.macosx b/contrib/libpcap/README.macosx
deleted file mode 100644
index 3dc9211..0000000
--- a/contrib/libpcap/README.macosx
+++ /dev/null
@@ -1,74 +0,0 @@
-As with other systems using BPF, Mac OS X allows users with read access
-to the BPF devices to capture packets with libpcap and allows users with
-write access to the BPF devices to send packets with libpcap.
-
-On some systems that use BPF, the BPF devices live on the root file
-system, and the permissions and/or ownership on those devices can be
-changed to give users other than root permission to read or write those
-devices.
-
-On newer versions of FreeBSD, the BPF devices live on devfs, and devfs
-can be configured to set the permissions and/or ownership of those
-devices to give users other than root permission to read or write those
-devices.
-
-On Mac OS X, the BPF devices live on devfs, but the OS X version of
-devfs is based on an older (non-default) FreeBSD devfs, and that version
-of devfs cannot be configured to set the permissions and/or ownership of
-those devices.
-
-Therefore, we supply:
-
- a "startup item" for older versions of Mac OS X;
-
- a launchd daemon for Tiger and later versions of Mac OS X;
-
-Both of them will change the ownership of the BPF devices so that the
-"admin" group owns them, and will change the permission of the BPF
-devices to rw-rw----, so that all users in the "admin" group - i.e., all
-users with "Allow user to administer this computer" turned on - have
-both read and write access to them.
-
-The startup item is in the ChmodBPF directory in the source tree. A
-/Library/StartupItems directory should be created if it doesn't already
-exist, and the ChmodBPF directory should be copied to the
-/Library/StartupItems directory (copy the entire directory, so that
-there's a /Library/StartupItems/ChmodBPF directory, containing all the
-files in the source tree's ChmodBPF directory; don't copy the individual
-items in that directory to /Library/StartupItems). The ChmodBPF
-directory, and all files under it, must be owned by root. Installing
-the files won't immediately cause the startup item to be executed; it
-will be executed on the next reboot. To change the permissions before
-the reboot, run
-
- sudo SystemStarter start ChmodBPF
-
-The launchd daemon is the chmod_bpf script, plus the
-org.tcpdump.chmod_bpf.plist launchd plist file. chmod_bpf should be
-installed in /usr/local/bin/chmod_bpf, and org.tcpdump.chmod_bpf.plist
-should be installed in /Library/LaunchDaemons. chmod_bpf, and
-org.tcpdump.chmod_bpf.plist, must be owned by root. Installing the
-script and plist file won't immediately cause the script to be executed;
-it will be executed on the next reboot. To change the permissions
-before the reboot, run
-
- sudo /usr/local/bin/chmod_bpf
-
-or
-
- sudo launchctl load /Library/LaunchDaemons/org.tcpdump.chmod_bpf.plist
-
-If you want to give a particular user permission to access the BPF
-devices, rather than giving all administrative users permission to
-access them, you can have the ChmodBPF/ChmodBPF script change the
-ownership of /dev/bpf* without changing the permissions. If you want to
-give a particular user permission to read and write the BPF devices and
-give the administrative users permission to read but not write the BPF
-devices, you can have the script change the owner to that user, the
-group to "admin", and the permissions to rw-r-----. Other possibilities
-are left as an exercise for the reader.
-
-(NOTE: due to a bug in Snow Leopard, if you change the permissions not
-to grant write permission to everybody who should be allowed to capture
-traffic, non-root users who cannot open the BPF devices for writing will
-not be able to capture outgoing packets.)
diff --git a/contrib/libpcap/README.tru64 b/contrib/libpcap/README.tru64
deleted file mode 100644
index 7fe1ef0..0000000
--- a/contrib/libpcap/README.tru64
+++ /dev/null
@@ -1,49 +0,0 @@
-The following instructions are applicable to Tru64 UNIX
-(formerly Digital UNIX (formerly DEC OSF/1)) version 4.0, and
-probably to later versions as well; at least some options apply to
-Digital UNIX 3.2 - perhaps all do.
-
-In order to use kernel packet filtering on this system, you have
-to configure it in such a way:
-
-Kernel configuration
---------------------
-
-The packet filtering kernel option must be enabled at kernel
-installation. If it was not the case, you can rebuild the kernel with
-"doconfig -c" after adding the following line in the kernel
-configuration file (/sys/conf/<HOSTNAME>):
-
- option PACKETFILTER
-
-or use "doconfig" without any arguments to add the packet filter driver
-option via the kernel option menu (see the system administration
-documentation for information on how to do this).
-
-Device configuration
---------------------
-
-Devices used for packet filtering must be created thanks to
-the following command (executed in the /dev directory):
-
- ./MAKEDEV pfilt
-
-Interface configuration
------------------------
-
-In order to capture all packets on a network, you may want to allow
-applications to put the interface on that network into "local copy"
-mode, so that tcpdump can see packets sent by the host on which it's
-running as well as packets received by that host, and to put the
-interface into "promiscuous" mode, so that tcpdump can see packets on
-the network segment not sent to the host on which it's running, by using
-the pfconfig(1) command:
-
- pfconfig +c +p <network_device>
-
-or allow application to put any interface into "local copy" or
-"promiscuous" mode by using the command:
-
- pfconfig +c +p -a
-
-Note: all instructions given require root privileges.
diff --git a/contrib/libpcap/SUNOS4/nit_if.o.sparc b/contrib/libpcap/SUNOS4/nit_if.o.sparc
deleted file mode 100644
index d05073e..0000000
--- a/contrib/libpcap/SUNOS4/nit_if.o.sparc
+++ /dev/null
Binary files differ
diff --git a/contrib/libpcap/SUNOS4/nit_if.o.sun3 b/contrib/libpcap/SUNOS4/nit_if.o.sun3
deleted file mode 100644
index c393fc6..0000000
--- a/contrib/libpcap/SUNOS4/nit_if.o.sun3
+++ /dev/null
Binary files differ
diff --git a/contrib/libpcap/SUNOS4/nit_if.o.sun4c.4.0.3c b/contrib/libpcap/SUNOS4/nit_if.o.sun4c.4.0.3c
deleted file mode 100644
index ef01039..0000000
--- a/contrib/libpcap/SUNOS4/nit_if.o.sun4c.4.0.3c
+++ /dev/null
Binary files differ
diff --git a/contrib/libpcap/Win32/Include/Gnuc.h b/contrib/libpcap/Win32/Include/Gnuc.h
deleted file mode 100644
index 0bf4b73..0000000
--- a/contrib/libpcap/Win32/Include/Gnuc.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* @(#) $Header: /tcpdump/master/libpcap/Win32/Include/Gnuc.h,v 1.1 2002-08-01 08:33:05 risso Exp $ (LBL) */
-
-/* Define __P() macro, if necessary */
-
-#ifndef __P
-#if __STDC__
-#define __P(protos) protos
-#else
-#define __P(protos) ()
-#endif
-#endif
-
-/* inline foo */
-#ifndef __cplusplus
-#ifdef __GNUC__
-#define inline __inline
-#else
-#define inline
-#endif
-#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/Win32/Include/addrinfo.h b/contrib/libpcap/Win32/Include/addrinfo.h
deleted file mode 100644
index 8cb2e65..0000000
--- a/contrib/libpcap/Win32/Include/addrinfo.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.
- * 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 project 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 PROJECT 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 PROJECT 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: addrinfo.h,v 1.1 2002-08-01 08:33:05 risso Exp $ */
-
-#ifndef HAVE_ADDRINFO
-
-/*
- * Error return codes from getaddrinfo()
- */
-#define EAI_ADDRFAMILY 1 /* address family for hostname not supported */
-#define EAI_AGAIN 2 /* temporary failure in name resolution */
-#define EAI_BADFLAGS 3 /* invalid value for ai_flags */
-#define EAI_FAIL 4 /* non-recoverable failure in name resolution */
-#define EAI_FAMILY 5 /* ai_family not supported */
-#define EAI_MEMORY 6 /* memory allocation failure */
-#define EAI_NODATA 7 /* no address associated with hostname */
-#define EAI_NONAME 8 /* hostname nor servname provided, or not known */
-#define EAI_SERVICE 9 /* servname not supported for ai_socktype */
-#define EAI_SOCKTYPE 10 /* ai_socktype not supported */
-#define EAI_SYSTEM 11 /* system error returned in errno */
-#define EAI_BADHINTS 12
-#define EAI_PROTOCOL 13
-#define EAI_MAX 14
-
-/* internal error */
-#define NETDB_INTERNAL -1 /* see errno */
-
-/*
- * Flag values for getaddrinfo()
- */
-#define AI_PASSIVE 0x00000001 /* get address to use bind() */
-#define AI_CANONNAME 0x00000002 /* fill ai_canonname */
-#define AI_NUMERICHOST 0x00000004 /* prevent name resolution */
-/* valid flags for addrinfo */
-#define AI_MASK (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST)
-
-#define AI_ALL 0x00000100 /* IPv6 and IPv4-mapped (with AI_V4MAPPED) */
-#define AI_V4MAPPED_CFG 0x00000200 /* accept IPv4-mapped if kernel supports */
-#define AI_ADDRCONFIG 0x00000400 /* only if any address is assigned */
-#define AI_V4MAPPED 0x00000800 /* accept IPv4-mapped IPv6 address */
-/* special recommended flags for getipnodebyname */
-#define AI_DEFAULT (AI_V4MAPPED_CFG | AI_ADDRCONFIG)
-
-struct addrinfo {
- int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
- int ai_family; /* PF_xxx */
- int ai_socktype; /* SOCK_xxx */
- int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
- size_t ai_addrlen; /* length of ai_addr */
- char *ai_canonname; /* canonical name for hostname */
- struct sockaddr *ai_addr; /* binary address */
- struct addrinfo *ai_next; /* next structure in linked list */
-};
-
-extern void freeaddrinfo (struct addrinfo *);
-extern void freehostent (struct hostent *);
-extern char *gai_strerror (int);
-extern int getaddrinfo (const char *, const char *,
- const struct addrinfo *, struct addrinfo **);
-extern int getnameinfo (const struct sockaddr *, size_t, char *,
- size_t, char *, size_t, int);
-extern struct hostent *getipnodebyaddr (const void *, size_t, int, int *);
-extern struct hostent *getipnodebyname (const char *, int, int, int *);
-extern int inet_pton (int, const char *, void *);
-extern const char *inet_ntop (int, const void *, char *, size_t);
-#else
-
-#ifndef EAI_BADHINTS
-#define EAI_BADHINTS 12
-#endif
-
-#ifndef EAI_PROTOCOL
-#define EAI_PROTOCOL 13
-#endif
-
-#ifndef EAI_MAX
-#define EAI_MAX 14
-#endif
-
-#ifndef NETDB_INTERNAL
-#define NETDB_INTERNAL -1 /* see errno */
-#endif
-
-#ifndef AI_MASK
-/* valid flags for addrinfo */
-#define AI_MASK (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST)
-#endif
-
-#endif /* HAVE_ADDRINFO */
-
-/*
- * Constants for getnameinfo()
- */
-#ifndef NI_MAXHOST
-#define NI_MAXHOST 1025
-#endif
-#ifndef NI_MAXSERV
-#define NI_MAXSERV 32
-#endif
-
-/*
- * Flag values for getnameinfo()
- */
-#ifndef NI_NOFQDN
-#define NI_NOFQDN 0x00000001
-#endif
-#ifndef NI_NUMERICHOST
-#define NI_NUMERICHOST 0x00000002
-#endif
-#ifndef NI_NAMEREQD
-#define NI_NAMEREQD 0x00000004
-#endif
-#ifndef NI_NUMERICSERV
-#define NI_NUMERICSERV 0x00000008
-#endif
-#ifndef NI_DGRAM
-#define NI_DGRAM 0x00000010
-#endif
-
diff --git a/contrib/libpcap/Win32/Include/arpa/nameser.h b/contrib/libpcap/Win32/Include/arpa/nameser.h
deleted file mode 100644
index 18f185c..0000000
--- a/contrib/libpcap/Win32/Include/arpa/nameser.h
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * ++Copyright++ 1983, 1989, 1993
- * -
- * Copyright (c) 1983, 1989, 1993
- * The Regents of the University of California. 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. 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.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-/*
- * @(#)nameser.h 8.1 (Berkeley) 6/2/93
- * nameser.h,v 1.2 1995/05/06 14:23:54 hjl Exp
- */
-
-#ifndef _NAMESER_H_
-#define _NAMESER_H_
-
-#ifndef WIN32
-#include <sys/param.h>
-#if (!defined(BSD)) || (BSD < 199306)
-# include <sys/bitypes.h>
-#else
-# include <sys/types.h>
-#endif
-#include <sys/cdefs.h>
-#else
-#include <pcap-stdinc.h>
-#define __LITTLE_ENDIAN 1
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#endif
-
-/*
- * revision information. this is the release date in YYYYMMDD format.
- * it can change every day so the right thing to do with it is use it
- * in preprocessor commands such as "#if (__BIND > 19931104)". do not
- * compare for equality; rather, use it to determine whether your resolver
- * is new enough to contain a certain feature.
- */
-
-#define __BIND 19940417 /* interface version stamp */
-
-/*
- * Define constants based on rfc883
- */
-#define PACKETSZ 512 /* maximum packet size */
-#define MAXDNAME 256 /* maximum domain name */
-#define MAXCDNAME 255 /* maximum compressed domain name */
-#define MAXLABEL 63 /* maximum length of domain label */
-#define HFIXEDSZ 12 /* #/bytes of fixed data in header */
-#define QFIXEDSZ 4 /* #/bytes of fixed data in query */
-#define RRFIXEDSZ 10 /* #/bytes of fixed data in r record */
-#define INT32SZ 4 /* for systems without 32-bit ints */
-#define INT16SZ 2 /* for systems without 16-bit ints */
-#define INADDRSZ 4 /* for sizeof(struct inaddr) != 4 */
-
-/*
- * Internet nameserver port number
- */
-#define NAMESERVER_PORT 53
-
-/*
- * Currently defined opcodes
- */
-#define QUERY 0x0 /* standard query */
-#define IQUERY 0x1 /* inverse query */
-#define STATUS 0x2 /* nameserver status query */
-/*#define xxx 0x3 *//* 0x3 reserved */
-#define NS_NOTIFY_OP 0x4 /* notify secondary of SOA change */
-#ifdef ALLOW_UPDATES
- /* non standard - supports ALLOW_UPDATES stuff from Mike Schwartz */
-# define UPDATEA 0x9 /* add resource record */
-# define UPDATED 0xa /* delete a specific resource record */
-# define UPDATEDA 0xb /* delete all named resource record */
-# define UPDATEM 0xc /* modify a specific resource record */
-# define UPDATEMA 0xd /* modify all named resource record */
-# define ZONEINIT 0xe /* initial zone transfer */
-# define ZONEREF 0xf /* incremental zone referesh */
-#endif
-
-/*
- * Currently defined response codes
- */
-#ifdef HAVE_ADDRINFO
-#define NOERROR 0 /* no error */
-#endif /* HAVE_ADDRINFO */
-#define FORMERR 1 /* format error */
-#define SERVFAIL 2 /* server failure */
-#define NXDOMAIN 3 /* non existent domain */
-#define NOTIMP 4 /* not implemented */
-#define REFUSED 5 /* query refused */
-#ifdef ALLOW_UPDATES
- /* non standard */
-# define NOCHANGE 0xf /* update failed to change db */
-#endif
-
-/*
- * Type values for resources and queries
- */
-#define T_A 1 /* host address */
-#define T_NS 2 /* authoritative server */
-#define T_MD 3 /* mail destination */
-#define T_MF 4 /* mail forwarder */
-#define T_CNAME 5 /* canonical name */
-#define T_SOA 6 /* start of authority zone */
-#define T_MB 7 /* mailbox domain name */
-#define T_MG 8 /* mail group member */
-#define T_MR 9 /* mail rename name */
-#define T_NULL 10 /* null resource record */
-#define T_WKS 11 /* well known service */
-#define T_PTR 12 /* domain name pointer */
-#define T_HINFO 13 /* host information */
-#define T_MINFO 14 /* mailbox information */
-#define T_MX 15 /* mail routing information */
-#define T_TXT 16 /* text strings */
-#define T_RP 17 /* responsible person */
-#define T_AFSDB 18 /* AFS cell database */
-#define T_X25 19 /* X_25 calling address */
-#define T_ISDN 20 /* ISDN calling address */
-#define T_RT 21 /* router */
-#define T_NSAP 22 /* NSAP address */
-#define T_NSAP_PTR 23 /* reverse NSAP lookup (deprecated) */
-#define T_SIG 24 /* security signature */
-#define T_KEY 25 /* security key */
-#define T_PX 26 /* X.400 mail mapping */
-#define T_GPOS 27 /* geographical position (withdrawn) */
-#define T_AAAA 28 /* IP6 Address */
-#define T_LOC 29 /* Location Information */
- /* non standard */
-#define T_UINFO 100 /* user (finger) information */
-#define T_UID 101 /* user ID */
-#define T_GID 102 /* group ID */
-#define T_UNSPEC 103 /* Unspecified format (binary data) */
- /* Query type values which do not appear in resource records */
-#define T_AXFR 252 /* transfer zone of authority */
-#define T_MAILB 253 /* transfer mailbox records */
-#define T_MAILA 254 /* transfer mail agent records */
-#define T_ANY 255 /* wildcard match */
-
-/*
- * Values for class field
- */
-
-#define C_IN 1 /* the arpa internet */
-#define C_CHAOS 3 /* for chaos net (MIT) */
-#define C_HS 4 /* for Hesiod name server (MIT) (XXX) */
- /* Query class values which do not appear in resource records */
-#define C_ANY 255 /* wildcard match */
-
-/*
- * Status return codes for T_UNSPEC conversion routines
- */
-#define CONV_SUCCESS 0
-#define CONV_OVERFLOW (-1)
-#define CONV_BADFMT (-2)
-#define CONV_BADCKSUM (-3)
-#define CONV_BADBUFLEN (-4)
-
-#ifndef __BYTE_ORDER
-#if (BSD >= 199103)
-# include <machine/endian.h>
-#else
-#ifdef linux
-# include <endian.h>
-#else
-#define __LITTLE_ENDIAN 1234 /* least-significant byte first (vax, pc) */
-#define __BIG_ENDIAN 4321 /* most-significant byte first (IBM, net) */
-#define __PDP_ENDIAN 3412 /* LSB first in word, MSW first in long (pdp)*/
-
-#if defined(vax) || defined(ns32000) || defined(sun386) || defined(i386) || \
- defined(MIPSEL) || defined(_MIPSEL) || defined(BIT_ZERO_ON_RIGHT) || \
- defined(__alpha__) || defined(__alpha)
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#endif
-
-#if defined(sel) || defined(pyr) || defined(mc68000) || defined(sparc) || \
- defined(is68k) || defined(tahoe) || defined(ibm032) || defined(ibm370) || \
- defined(MIPSEB) || defined(_MIPSEB) || defined(_IBMR2) || defined(DGUX) ||\
- defined(apollo) || defined(__convex__) || defined(_CRAY) || \
- defined(__hppa) || defined(__hp9000) || \
- defined(__hp9000s300) || defined(__hp9000s700) || \
- defined (BIT_ZERO_ON_LEFT) || defined(m68k)
-#define __BYTE_ORDER __BIG_ENDIAN
-#endif
-#endif /* linux */
-#endif /* BSD */
-#endif /* __BYTE_ORDER */
-
-#if !defined(__BYTE_ORDER) || \
- (__BYTE_ORDER != __BIG_ENDIAN && __BYTE_ORDER != __LITTLE_ENDIAN && \
- __BYTE_ORDER != __PDP_ENDIAN)
- /* you must determine what the correct bit order is for
- * your compiler - the next line is an intentional error
- * which will force your compiles to bomb until you fix
- * the above macros.
- */
- error "Undefined or invalid __BYTE_ORDER";
-#endif
-
-/*
- * Structure for query header. The order of the fields is machine- and
- * compiler-dependent, depending on the byte/bit order and the layout
- * of bit fields. We use bit fields only in int variables, as this
- * is all ANSI requires. This requires a somewhat confusing rearrangement.
- */
-
-typedef struct {
- unsigned id :16; /* query identification number */
-#if __BYTE_ORDER == __BIG_ENDIAN
- /* fields in third byte */
- unsigned qr: 1; /* response flag */
- unsigned opcode: 4; /* purpose of message */
- unsigned aa: 1; /* authoritive answer */
- unsigned tc: 1; /* truncated message */
- unsigned rd: 1; /* recursion desired */
- /* fields in fourth byte */
- unsigned ra: 1; /* recursion available */
- unsigned pr: 1; /* primary server req'd (!standard) */
- unsigned unused :2; /* unused bits (MBZ as of 4.9.3a3) */
- unsigned rcode :4; /* response code */
-#endif
-#if __BYTE_ORDER == __LITTLE_ENDIAN || __BYTE_ORDER == __PDP_ENDIAN
- /* fields in third byte */
- unsigned rd :1; /* recursion desired */
- unsigned tc :1; /* truncated message */
- unsigned aa :1; /* authoritive answer */
- unsigned opcode :4; /* purpose of message */
- unsigned qr :1; /* response flag */
- /* fields in fourth byte */
- unsigned rcode :4; /* response code */
- unsigned unused :2; /* unused bits (MBZ as of 4.9.3a3) */
- unsigned pr :1; /* primary server req'd (!standard) */
- unsigned ra :1; /* recursion available */
-#endif
- /* remaining bytes */
- unsigned qdcount :16; /* number of question entries */
- unsigned ancount :16; /* number of answer entries */
- unsigned nscount :16; /* number of authority entries */
- unsigned arcount :16; /* number of resource entries */
-} HEADER;
-
-/*
- * Defines for handling compressed domain names
- */
-#define INDIR_MASK 0xc0
-
-/*
- * Structure for passing resource records around.
- */
-struct rrec {
- int16_t r_zone; /* zone number */
- int16_t r_class; /* class number */
- int16_t r_type; /* type number */
- u_int32_t r_ttl; /* time to live */
- int r_size; /* size of data area */
- char *r_data; /* pointer to data */
-};
-
-//extern u_int16_t _getshort __P((const u_char *));
-//extern u_int32_t _getlong __P((const u_char *));
-
-/*
- * Inline versions of get/put short/long. Pointer is advanced.
- *
- * These macros demonstrate the property of C whereby it can be
- * portable or it can be elegant but rarely both.
- */
-#define GETSHORT(s, cp) { \
- register u_char *t_cp = (u_char *)(cp); \
- (s) = ((u_int16_t)t_cp[0] << 8) \
- | ((u_int16_t)t_cp[1]) \
- ; \
- (cp) += INT16SZ; \
-}
-
-#define GETLONG(l, cp) { \
- register u_char *t_cp = (u_char *)(cp); \
- (l) = ((u_int32_t)t_cp[0] << 24) \
- | ((u_int32_t)t_cp[1] << 16) \
- | ((u_int32_t)t_cp[2] << 8) \
- | ((u_int32_t)t_cp[3]) \
- ; \
- (cp) += INT32SZ; \
-}
-
-#define PUTSHORT(s, cp) { \
- register u_int16_t t_s = (u_int16_t)(s); \
- register u_char *t_cp = (u_char *)(cp); \
- *t_cp++ = t_s >> 8; \
- *t_cp = t_s; \
- (cp) += INT16SZ; \
-}
-
-#define PUTLONG(l, cp) { \
- register u_int32_t t_l = (u_int32_t)(l); \
- register u_char *t_cp = (u_char *)(cp); \
- *t_cp++ = t_l >> 24; \
- *t_cp++ = t_l >> 16; \
- *t_cp++ = t_l >> 8; \
- *t_cp = t_l; \
- (cp) += INT32SZ; \
-}
-
-#endif /* !_NAMESER_H_ */
diff --git a/contrib/libpcap/Win32/Include/bittypes.h b/contrib/libpcap/Win32/Include/bittypes.h
deleted file mode 100644
index 8c3f69f..0000000
--- a/contrib/libpcap/Win32/Include/bittypes.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 1999 WIDE Project.
- * 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 project 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 PROJECT 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 PROJECT 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.
- */
-#ifndef _BITTYPES_H
-#define _BITTYPES_H
-
-#ifndef HAVE_U_INT8_T
-
-#if SIZEOF_CHAR == 1
-typedef unsigned char u_int8_t;
-typedef signed char int8_t;
-#elif SIZEOF_INT == 1
-typedef unsigned int u_int8_t;
-typedef signed int int8_t;
-#else /* XXX */
-#error "there's no appropriate type for u_int8_t"
-#endif
-#define HAVE_U_INT8_T 1
-#define HAVE_INT8_T 1
-
-#endif /* HAVE_U_INT8_T */
-
-#ifndef HAVE_U_INT16_T
-
-#if SIZEOF_SHORT == 2
-typedef unsigned short u_int16_t;
-typedef signed short int16_t;
-#elif SIZEOF_INT == 2
-typedef unsigned int u_int16_t;
-typedef signed int int16_t;
-#elif SIZEOF_CHAR == 2
-typedef unsigned char u_int16_t;
-typedef signed char int16_t;
-#else /* XXX */
-#error "there's no appropriate type for u_int16_t"
-#endif
-#define HAVE_U_INT16_T 1
-#define HAVE_INT16_T 1
-
-#endif /* HAVE_U_INT16_T */
-
-#ifndef HAVE_U_INT32_T
-
-#if SIZEOF_INT == 4
-typedef unsigned int u_int32_t;
-typedef signed int int32_t;
-#elif SIZEOF_LONG == 4
-typedef unsigned long u_int32_t;
-typedef signed long int32_t;
-#elif SIZEOF_SHORT == 4
-typedef unsigned short u_int32_t;
-typedef signed short int32_t;
-#else /* XXX */
-#error "there's no appropriate type for u_int32_t"
-#endif
-#define HAVE_U_INT32_T 1
-#define HAVE_INT32_T 1
-
-#endif /* HAVE_U_INT32_T */
-
-#ifndef HAVE_U_INT64_T
-#if SIZEOF_LONG_LONG == 8
-typedef unsigned long long u_int64_t;
-typedef long long int64_t;
-#elif defined(_MSC_EXTENSIONS)
-typedef unsigned _int64 u_int64_t;
-typedef _int64 int64_t;
-#elif SIZEOF_INT == 8
-typedef unsigned int u_int64_t;
-#elif SIZEOF_LONG == 8
-typedef unsigned long u_int64_t;
-#elif SIZEOF_SHORT == 8
-typedef unsigned short u_int64_t;
-#else /* XXX */
-#error "there's no appropriate type for u_int64_t"
-#endif
-#define HAVE_U_INT64_T 1
-#define HAVE_INT64_T 1
-
-#endif /* HAVE_U_INT64_T */
-
-#ifndef PRId64
-#ifdef _MSC_EXTENSIONS
-#define PRId64 "I64d"
-#else /* _MSC_EXTENSIONS */
-#define PRId64 "lld"
-#endif /* _MSC_EXTENSIONS */
-#endif /* PRId64 */
-
-#ifndef PRIo64
-#ifdef _MSC_EXTENSIONS
-#define PRIo64 "I64o"
-#else /* _MSC_EXTENSIONS */
-#define PRIo64 "llo"
-#endif /* _MSC_EXTENSIONS */
-#endif /* PRIo64 */
-
-#ifndef PRIx64
-#ifdef _MSC_EXTENSIONS
-#define PRIx64 "I64x"
-#else /* _MSC_EXTENSIONS */
-#define PRIx64 "llx"
-#endif /* _MSC_EXTENSIONS */
-#endif /* PRIx64 */
-
-#ifndef PRIu64
-#ifdef _MSC_EXTENSIONS
-#define PRIu64 "I64u"
-#else /* _MSC_EXTENSIONS */
-#define PRIu64 "llu"
-#endif /* _MSC_EXTENSIONS */
-#endif /* PRIu64 */
-
-#endif /* _BITTYPES_H */
diff --git a/contrib/libpcap/Win32/Include/cdecl_ext.h b/contrib/libpcap/Win32/Include/cdecl_ext.h
deleted file mode 100644
index 9591db2..0000000
--- a/contrib/libpcap/Win32/Include/cdecl_ext.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 1999 WIDE Project.
- * 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 project 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 PROJECT 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 PROJECT 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.
- */
-#ifndef HAVE_PORTABLE_PROTOTYPE
-
-#if defined(__STDC__) || defined(__cplusplus)
-#define __P(protos) protos /* full-blown ANSI C */
-#else
-#define __P(protos) () /* traditional C preprocessor */
-#endif
-
-#endif /* !HAVE_PORTABLE_PROTOTYPE */
diff --git a/contrib/libpcap/Win32/Include/inetprivate.h b/contrib/libpcap/Win32/Include/inetprivate.h
deleted file mode 100644
index e25ed3d..0000000
--- a/contrib/libpcap/Win32/Include/inetprivate.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 1999 - 2003
- * NetGroup, Politecnico di Torino (Italy)
- * 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 Politecnico di Torino 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 COPYRIGHT HOLDERS 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 COPYRIGHT
- * OWNER 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.
- *
- */
-
-#include <sys/types.h>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <net/netdb.h>
-#include <stdio.h>
-#include <errno.h>
-#include <arpa/nameser.h>
-
-extern void _sethtent(int f);
-extern void _endhtent(void);
-extern struct hostent *_gethtent(void);
-extern struct hostent *_gethtbyname(const char *name);
-extern struct hostent *_gethtbyaddr(const char *addr, int len,
- int type);
-extern int _validuser(FILE *hostf, const char *rhost,
- const char *luser, const char *ruser, int baselen);
-extern int _checkhost(const char *rhost, const char *lhost, int len);
-#if 0
-extern void putlong(u_long l, u_char *msgp);
-extern void putshort(u_short l, u_char *msgp);
-extern u_int32_t _getlong(register const u_char *msgp);
-extern u_int16_t _getshort(register const u_char *msgp);
-extern void p_query(char *msg);
-extern void fp_query(char *msg, FILE *file);
-extern char *p_cdname(char *cp, char *msg, FILE *file);
-extern char *p_rr(char *cp, char *msg, FILE *file);
-extern char *p_type(int type);
-extern char * p_class(int class);
-extern char *p_time(u_long value);
-#endif
-extern char * hostalias(const char *name);
-extern void sethostfile(char *name);
-extern void _res_close (void);
-extern void ruserpass(const char *host, char **aname, char **apass);
diff --git a/contrib/libpcap/Win32/Include/ip6_misc.h b/contrib/libpcap/Win32/Include/ip6_misc.h
deleted file mode 100644
index 562fa61..0000000
--- a/contrib/libpcap/Win32/Include/ip6_misc.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 1993, 1994, 1997
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that: (1) source code distributions
- * retain the above copyright notice and this paragraph in its entirety, (2)
- * distributions including binary code include the above copyright notice and
- * this paragraph in its entirety in the documentation or other materials
- * provided with the distribution, and (3) all advertising materials mentioning
- * features or use of this software display the following acknowledgement:
- * ``This product includes software developed by the University of California,
- * Lawrence Berkeley Laboratory and its contributors.'' 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * @(#) $Header: /tcpdump/master/libpcap/Win32/Include/ip6_misc.h,v 1.5 2006-01-22 18:02:18 gianluca Exp $ (LBL)
- */
-
-/*
- * This file contains a collage of declarations for IPv6 from FreeBSD not present in Windows
- */
-
-#include <winsock2.h>
-
-#include <ws2tcpip.h>
-
-#ifndef __MINGW32__
-#define IN_MULTICAST(a) IN_CLASSD(a)
-#endif
-
-#define IN_EXPERIMENTAL(a) ((((u_int32_t) (a)) & 0xf0000000) == 0xf0000000)
-
-#define IN_LOOPBACKNET 127
-
-#if defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF)
-/* IPv6 address */
-struct in6_addr
- {
- union
- {
- u_int8_t u6_addr8[16];
- u_int16_t u6_addr16[8];
- u_int32_t u6_addr32[4];
- } in6_u;
-#define s6_addr in6_u.u6_addr8
-#define s6_addr16 in6_u.u6_addr16
-#define s6_addr32 in6_u.u6_addr32
-#define s6_addr64 in6_u.u6_addr64
- };
-
-#define IN6ADDR_ANY_INIT { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
-#define IN6ADDR_LOOPBACK_INIT { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }
-#endif /* __MINGW32__ */
-
-
-#if (defined _MSC_VER) || (defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF))
-typedef unsigned short sa_family_t;
-#endif
-
-
-#if defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF)
-
-#define __SOCKADDR_COMMON(sa_prefix) \
- sa_family_t sa_prefix##family
-
-/* Ditto, for IPv6. */
-struct sockaddr_in6
- {
- __SOCKADDR_COMMON (sin6_);
- u_int16_t sin6_port; /* Transport layer port # */
- u_int32_t sin6_flowinfo; /* IPv6 flow information */
- struct in6_addr sin6_addr; /* IPv6 address */
- };
-
-#define IN6_IS_ADDR_V4MAPPED(a) \
- ((((u_int32_t *) (a))[0] == 0) && (((u_int32_t *) (a))[1] == 0) && \
- (((u_int32_t *) (a))[2] == htonl (0xffff)))
-
-#define IN6_IS_ADDR_MULTICAST(a) (((u_int8_t *) (a))[0] == 0xff)
-
-#define IN6_IS_ADDR_LINKLOCAL(a) \
- ((((u_int32_t *) (a))[0] & htonl (0xffc00000)) == htonl (0xfe800000))
-
-#define IN6_IS_ADDR_LOOPBACK(a) \
- (((u_int32_t *) (a))[0] == 0 && ((u_int32_t *) (a))[1] == 0 && \
- ((u_int32_t *) (a))[2] == 0 && ((u_int32_t *) (a))[3] == htonl (1))
-#endif /* __MINGW32__ */
-
-#define ip6_vfc ip6_ctlun.ip6_un2_vfc
-#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow
-#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen
-#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt
-#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim
-#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim
-
-#define nd_rd_type nd_rd_hdr.icmp6_type
-#define nd_rd_code nd_rd_hdr.icmp6_code
-#define nd_rd_cksum nd_rd_hdr.icmp6_cksum
-#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0]
-
-/*
- * IPV6 extension headers
- */
-#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */
-#define IPPROTO_IPV6 41 /* IPv6 header. */
-#define IPPROTO_ROUTING 43 /* IPv6 routing header */
-#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
-#define IPPROTO_ESP 50 /* encapsulating security payload */
-#define IPPROTO_AH 51 /* authentication header */
-#define IPPROTO_ICMPV6 58 /* ICMPv6 */
-#define IPPROTO_NONE 59 /* IPv6 no next header */
-#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */
-#define IPPROTO_PIM 103 /* Protocol Independent Multicast. */
-
-#define IPV6_RTHDR_TYPE_0 0
-
-/* Option types and related macros */
-#define IP6OPT_PAD1 0x00 /* 00 0 00000 */
-#define IP6OPT_PADN 0x01 /* 00 0 00001 */
-#define IP6OPT_JUMBO 0xC2 /* 11 0 00010 = 194 */
-#define IP6OPT_JUMBO_LEN 6
-#define IP6OPT_ROUTER_ALERT 0x05 /* 00 0 00101 */
-
-#define IP6OPT_RTALERT_LEN 4
-#define IP6OPT_RTALERT_MLD 0 /* Datagram contains an MLD message */
-#define IP6OPT_RTALERT_RSVP 1 /* Datagram contains an RSVP message */
-#define IP6OPT_RTALERT_ACTNET 2 /* contains an Active Networks msg */
-#define IP6OPT_MINLEN 2
-
-#define IP6OPT_BINDING_UPDATE 0xc6 /* 11 0 00110 */
-#define IP6OPT_BINDING_ACK 0x07 /* 00 0 00111 */
-#define IP6OPT_BINDING_REQ 0x08 /* 00 0 01000 */
-#define IP6OPT_HOME_ADDRESS 0xc9 /* 11 0 01001 */
-#define IP6OPT_EID 0x8a /* 10 0 01010 */
-
-#define IP6OPT_TYPE(o) ((o) & 0xC0)
-#define IP6OPT_TYPE_SKIP 0x00
-#define IP6OPT_TYPE_DISCARD 0x40
-#define IP6OPT_TYPE_FORCEICMP 0x80
-#define IP6OPT_TYPE_ICMP 0xC0
-
-#define IP6OPT_MUTABLE 0x20
-
-
-#if defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF)
-#ifndef EAI_ADDRFAMILY
-struct addrinfo {
- int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
- int ai_family; /* PF_xxx */
- int ai_socktype; /* SOCK_xxx */
- int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
- size_t ai_addrlen; /* length of ai_addr */
- char *ai_canonname; /* canonical name for hostname */
- struct sockaddr *ai_addr; /* binary address */
- struct addrinfo *ai_next; /* next structure in linked list */
-};
-#endif
-#endif /* __MINGW32__ */
diff --git a/contrib/libpcap/Win32/Include/net/if.h b/contrib/libpcap/Win32/Include/net/if.h
deleted file mode 100644
index 7f835fb..0000000
--- a/contrib/libpcap/Win32/Include/net/if.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Copyright (c) 1982, 1986, 1989, 1993
- * The Regents of the University of California. 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. 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.
- *
- * @(#)if.h 8.1 (Berkeley) 6/10/93
- * $FreeBSD$
- */
-
-#ifndef _NET_IF_H_
-#define _NET_IF_H_
-
-/*
- * <net/if.h> does not depend on <sys/time.h> on most other systems. This
- * helps userland compatability. (struct timeval ifi_lastchange)
- */
-#ifndef KERNEL
-#include <pcap-stdinc.h>
-#endif
-
-/*
- * Structure describing information about an interface
- * which may be of interest to management entities.
- */
-struct if_data {
- /* generic interface information */
- u_char ifi_type; /* ethernet, tokenring, etc */
- u_char ifi_physical; /* e.g., AUI, Thinnet, 10base-T, etc */
- u_char ifi_addrlen; /* media address length */
- u_char ifi_hdrlen; /* media header length */
- u_char ifi_recvquota; /* polling quota for receive intrs */
- u_char ifi_xmitquota; /* polling quota for xmit intrs */
- u_long ifi_mtu; /* maximum transmission unit */
- u_long ifi_metric; /* routing metric (external only) */
- u_long ifi_baudrate; /* linespeed */
- /* volatile statistics */
- u_long ifi_ipackets; /* packets received on interface */
- u_long ifi_ierrors; /* input errors on interface */
- u_long ifi_opackets; /* packets sent on interface */
- u_long ifi_oerrors; /* output errors on interface */
- u_long ifi_collisions; /* collisions on csma interfaces */
- u_long ifi_ibytes; /* total number of octets received */
- u_long ifi_obytes; /* total number of octets sent */
- u_long ifi_imcasts; /* packets received via multicast */
- u_long ifi_omcasts; /* packets sent via multicast */
- u_long ifi_iqdrops; /* dropped on input, this interface */
- u_long ifi_noproto; /* destined for unsupported protocol */
- u_long ifi_recvtiming; /* usec spent receiving when timing */
- u_long ifi_xmittiming; /* usec spent xmitting when timing */
- struct timeval ifi_lastchange; /* time of last administrative change */
-};
-
-/* ws2tcpip.h has interface flags: IFF_* */
-#if 0
-#define IFF_UP 0x1 /* interface is up */
-#define IFF_BROADCAST 0x2 /* broadcast address valid */
-#define IFF_DEBUG 0x4 /* turn on debugging */
-#define IFF_LOOPBACK 0x8 /* is a loopback net */
-#define IFF_POINTOPOINT 0x10 /* interface is point-to-point link */
-/*#define IFF_NOTRAILERS 0x20 * obsolete: avoid use of trailers */
-#define IFF_RUNNING 0x40 /* resources allocated */
-#define IFF_NOARP 0x80 /* no address resolution protocol */
-#define IFF_PROMISC 0x100 /* receive all packets */
-#define IFF_ALLMULTI 0x200 /* receive all multicast packets */
-#define IFF_OACTIVE 0x400 /* transmission in progress */
-#define IFF_SIMPLEX 0x800 /* can't hear own transmissions */
-#define IFF_LINK0 0x1000 /* per link layer defined bit */
-#define IFF_LINK1 0x2000 /* per link layer defined bit */
-#define IFF_LINK2 0x4000 /* per link layer defined bit */
-#define IFF_ALTPHYS IFF_LINK2 /* use alternate physical connection */
-#define IFF_MULTICAST 0x8000 /* supports multicast */
-#endif /* 0 */
-
-/* flags set internally only: */
-#define IFF_CANTCHANGE \
- (IFF_BROADCAST|IFF_POINTOPOINT|IFF_RUNNING|IFF_OACTIVE|\
- IFF_SIMPLEX|IFF_MULTICAST|IFF_ALLMULTI)
-
-#define IFQ_MAXLEN 50
-#define IFNET_SLOWHZ 1 /* granularity is 1 second */
-
-/*
- * Message format for use in obtaining information about interfaces
- * from getkerninfo and the routing socket
- */
-struct if_msghdr {
- u_short ifm_msglen; /* to skip over non-understood messages */
- u_char ifm_version; /* future binary compatability */
- u_char ifm_type; /* message type */
- int ifm_addrs; /* like rtm_addrs */
- int ifm_flags; /* value of if_flags */
- u_short ifm_index; /* index for associated ifp */
- struct if_data ifm_data;/* statistics and other data about if */
-};
-
-/*
- * Message format for use in obtaining information about interface addresses
- * from getkerninfo and the routing socket
- */
-struct ifa_msghdr {
- u_short ifam_msglen; /* to skip over non-understood messages */
- u_char ifam_version; /* future binary compatability */
- u_char ifam_type; /* message type */
- int ifam_addrs; /* like rtm_addrs */
- int ifam_flags; /* value of ifa_flags */
- u_short ifam_index; /* index for associated ifp */
- int ifam_metric; /* value of ifa_metric */
-};
-
-/*
- * Message format for use in obtaining information about multicast addresses
- * from the routing socket
- */
-struct ifma_msghdr {
- u_short ifmam_msglen; /* to skip over non-understood messages */
- u_char ifmam_version; /* future binary compatability */
- u_char ifmam_type; /* message type */
- int ifmam_addrs; /* like rtm_addrs */
- int ifmam_flags; /* value of ifa_flags */
- u_short ifmam_index; /* index for associated ifp */
-};
-
-/*
- * Interface request structure used for socket
- * ioctl's. All interface ioctl's must have parameter
- * definitions which begin with ifr_name. The
- * remainder may be interface specific.
- */
-struct ifreq {
-#define IFNAMSIZ 16
- char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */
- union {
- struct sockaddr ifru_addr;
- struct sockaddr ifru_dstaddr;
- struct sockaddr ifru_broadaddr;
- short ifru_flags;
- int ifru_metric;
- int ifru_mtu;
- int ifru_phys;
- int ifru_media;
- caddr_t ifru_data;
- } ifr_ifru;
-#define ifr_addr ifr_ifru.ifru_addr /* address */
-#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */
-#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */
-#define ifr_flags ifr_ifru.ifru_flags /* flags */
-#define ifr_metric ifr_ifru.ifru_metric /* metric */
-#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */
-#define ifr_phys ifr_ifru.ifru_phys /* physical wire */
-#define ifr_media ifr_ifru.ifru_media /* physical media */
-#define ifr_data ifr_ifru.ifru_data /* for use by interface */
-};
-
-#define _SIZEOF_ADDR_IFREQ(ifr) \
- ((ifr).ifr_addr.sa_len > sizeof(struct sockaddr) ? \
- (sizeof(struct ifreq) - sizeof(struct sockaddr) + \
- (ifr).ifr_addr.sa_len) : sizeof(struct ifreq))
-
-struct ifaliasreq {
- char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */
- struct sockaddr ifra_addr;
- struct sockaddr ifra_broadaddr;
- struct sockaddr ifra_mask;
-};
-
-struct ifmediareq {
- char ifm_name[IFNAMSIZ]; /* if name, e.g. "en0" */
- int ifm_current; /* current media options */
- int ifm_mask; /* don't care mask */
- int ifm_status; /* media status */
- int ifm_active; /* active options */
- int ifm_count; /* # entries in ifm_ulist array */
- int *ifm_ulist; /* media words */
-};
-/*
- * Structure used in SIOCGIFCONF request.
- * Used to retrieve interface configuration
- * for machine (useful for programs which
- * must know all networks accessible).
- */
-struct ifconf {
- int ifc_len; /* size of associated buffer */
- union {
- caddr_t ifcu_buf;
- struct ifreq *ifcu_req;
- } ifc_ifcu;
-#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */
-#define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */
-};
-
-#ifdef KERNEL
-#ifdef MALLOC_DECLARE
-MALLOC_DECLARE(M_IFADDR);
-MALLOC_DECLARE(M_IFMADDR);
-#endif
-#endif
-
-/* XXX - this should go away soon */
-#ifdef KERNEL
-#include <net/if_var.h>
-#endif
-
-#endif /* !_NET_IF_H_ */
diff --git a/contrib/libpcap/Win32/Include/net/netdb.h b/contrib/libpcap/Win32/Include/net/netdb.h
deleted file mode 100644
index b9d45ac..0000000
--- a/contrib/libpcap/Win32/Include/net/netdb.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*-
- * Copyright (c) 1980, 1983, 1988, 1993
- * The Regents of the University of California. 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. 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.
- *
- * @(#)netdb.h 8.1 (Berkeley) 6/2/93
- * netdb.h,v 1.4 1995/08/14 04:05:04 hjl Exp
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- *
- * Permission to use, copy, modify and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-#ifndef _NETDB_H_
-#define _NETDB_H_
-
-#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) || defined(_REENTRANT)
-#include <stdio.h>
-#include <netinet/in.h>
-#endif
-
-#include <winsock2.h>
-#include <net/paths.h>
-
-#define _PATH_HEQUIV __PATH_ETC_INET"/hosts.equiv"
-#define _PATH_HOSTS __PATH_ETC_INET"/hosts"
-#define _PATH_NETWORKS __PATH_ETC_INET"/networks"
-#define _PATH_PROTOCOLS __PATH_ETC_INET"/protocols"
-#define _PATH_SERVICES __PATH_ETC_INET"/services"
-#define _PATH_RESCONF __PATH_ETC_INET"/resolv.conf"
-#define _PATH_RPC __PATH_ETC_INET"/rpc"
-
-struct rpcent {
- char *r_name; /* name of server for this rpc program */
- char **r_aliases; /* alias list */
- int r_number; /* rpc program number */
-};
-
-#ifndef WIN32
-#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) || defined(_REENTRANT)
-
-#define __NETDB_MAXALIASES 35
-#define __NETDB_MAXADDRS 35
-
-/*
- * Error return codes from gethostbyname() and gethostbyaddr()
- * (left in extern int h_errno).
- */
-#define h_errno (*__h_errno_location ())
-#else
-extern int h_errno;
-#endif
-#endif
-
-#define NETDB_INTERNAL -1 /* see errno */
-#define NETDB_SUCCESS 0 /* no problem */
-
-//#include <features.h>
-
-void endhostent (void);
-void endnetent (void);
-void endprotoent (void);
-void endservent (void);
-void endrpcent (void);
-struct hostent *gethostent (void);
-struct netent *getnetbyaddr (long, int); /* u_long? */
-struct netent *getnetbyname (const char *);
-struct netent *getnetent (void);
-struct protoent *getprotoent (void);
-struct servent *getservent (void);
-struct rpcent *getrpcent (void);
-struct rpcent *getrpcbyname (const char *);
-struct rpcent *getrpcbynumber (int);
-void herror (const char *);
-void sethostent (int);
-/* void sethostfile (const char *); */
-void setnetent (int);
-void setprotoent (int);
-void setservent (int);
-void setrpcent (int);
-
-#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) || defined(_REENTRANT)
-struct hostent *gethostbyaddr_r (const char *__addr,
- int __length, int __type,
- struct hostent *__result,
- char *__buffer, int __buflen, int *__h_errnop);
-struct hostent *gethostbyname_r (const char * __name,
- struct hostent *__result, char *__buffer,
- int __buflen, int *__h_errnop);
-struct hostent *gethostent_r (struct hostent *__result,
- char *__buffer, int __buflen, int *__h_errnop);
-struct netent *getnetbyaddr_r (long __net, int __type,
- struct netent *__result, char *__buffer,
- int __buflen);
-struct netent *getnetbyname_r (const char * __name,
- struct netent *__result, char *__buffer,
- int __buflen);
-struct netent *getnetent_r (struct netent *__result,
- char *__buffer, int __buflen);
-struct protoent *getprotobyname_r (const char * __name,
- struct protoent *__result, char *__buffer,
- int __buflen);
-struct protoent *getprotobynumber_r (int __proto,
- struct protoent *__result, char *__buffer,
- int __buflen);
-struct protoent *getprotoent_r (struct protoent *__result,
- char *__buffer, int __buflen);
-struct servent *getservbyname_r (const char * __name,
- const char *__proto, struct servent *__result,
- char *__buffer, int __buflen);
-struct servent *getservbyport_r (int __port,
- const char *__proto, struct servent *__result,
- char *__buffer, int __buflen);
-struct servent *getservent_r (struct servent *__result,
- char *__buffer, int __buflen);
-
-int *__h_errno_location (void);
-
-#endif
-
-#endif /* !_NETDB_H_ */
diff --git a/contrib/libpcap/Win32/Include/net/paths.h b/contrib/libpcap/Win32/Include/net/paths.h
deleted file mode 100644
index 987de4f..0000000
--- a/contrib/libpcap/Win32/Include/net/paths.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 1989 The Regents of the University of California.
- * 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. 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.
- *
- * @(#)paths.h 5.15 (Berkeley) 5/29/91
- */
-
-#ifndef _PATHS_H_
-#define _PATHS_H_
-
-#if 0
-#define __PATH_ETC_INET "/usr/etc/inet"
-#else
-#define __PATH_ETC_INET "/etc"
-#endif
-
-/* Default search path. */
-#define _PATH_DEFPATH "/usr/local/bin:/usr/bin:/bin:."
-#define _PATH_DEFPATH_ROOT "/sbin:/bin:/usr/sbin:/usr/bin"
-
-#define _PATH_BSHELL "/bin/sh"
-#define _PATH_CONSOLE "/dev/console"
-#define _PATH_CSHELL "/bin/csh"
-#define _PATH_DEVDB "/var/run/dev.db"
-#define _PATH_DEVNULL "/dev/null"
-#define _PATH_DRUM "/dev/drum"
-#define _PATH_HEQUIV __PATH_ETC_INET"/hosts.equiv"
-#define _PATH_KMEM "/dev/kmem"
-#define _PATH_MAILDIR "/var/spool/mail"
-#define _PATH_MAN "/usr/man"
-#define _PATH_MEM "/dev/mem"
-#define _PATH_LOGIN "/bin/login"
-#define _PATH_NOLOGIN "/etc/nologin"
-#define _PATH_SENDMAIL "/usr/sbin/sendmail"
-#define _PATH_SHELLS "/etc/shells"
-#define _PATH_TTY "/dev/tty"
-#define _PATH_UNIX "/vmlinux"
-#define _PATH_VI "/usr/bin/vi"
-
-/* Provide trailing slash, since mostly used for building pathnames. */
-#define _PATH_DEV "/dev/"
-#define _PATH_TMP "/tmp/"
-#define _PATH_VARRUN "/var/run/"
-#define _PATH_VARTMP "/var/tmp/"
-
-#define _PATH_KLOG "/proc/kmsg"
-#define _PATH_LOGCONF __PATH_ETC_INET"/syslog.conf"
-#if 0
-#define _PATH_LOGPID __PATH_ETC_INET"/syslog.pid"
-#else
-#define _PATH_LOGPID "/var/run/syslog.pid"
-#endif
-#define _PATH_LOG "/dev/log"
-#define _PATH_CONSOLE "/dev/console"
-
-#if 0
-#define _PATH_UTMP "/var/adm/utmp"
-#define _PATH_WTMP "/var/adm/wtmp"
-#define _PATH_LASTLOG "/var/adm/lastlog"
-#else
-#define _PATH_UTMP "/var/run/utmp"
-#define _PATH_WTMP "/var/log/wtmp"
-#define _PATH_LASTLOG "/var/log/lastlog"
-#endif
-
-#define _PATH_LOCALE "/usr/lib/locale"
-
-#define _PATH_RWHODIR "/var/spool/rwho"
-
-#if _MIT_POSIX_THREADS
-/* For the MIT pthreads */
-#define _PATH_PTY "/dev/"
-#define _PATH_TZDIR "/usr/lib/zoneinfo"
-#define _PATH_TZFILE "/usr/lib/zoneinfo/localtime"
-#endif
-
-#endif /* !_PATHS_H_ */
diff --git a/contrib/libpcap/Win32/Include/sockstorage.h b/contrib/libpcap/Win32/Include/sockstorage.h
deleted file mode 100644
index 557eb4d..0000000
--- a/contrib/libpcap/Win32/Include/sockstorage.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 1999 WIDE Project.
- * 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 project 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 PROJECT 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 PROJECT 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.
- */
-struct sockaddr_storage {
-#ifdef HAVE_SOCKADDR_SA_LEN
- u_int8_t __ss_len;
- u_int8_t __ss_family;
- u_int8_t fill[126];
-#else
- u_int8_t __ss_family;
- u_int8_t fill[127];
-#endif /* HAVE_SOCKADDR_SA_LEN */
-};
diff --git a/contrib/libpcap/Win32/Prj/libpcap.dsp b/contrib/libpcap/Win32/Prj/libpcap.dsp
deleted file mode 100644
index e5168f7..0000000
--- a/contrib/libpcap/Win32/Prj/libpcap.dsp
+++ /dev/null
@@ -1,168 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libpcap" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=libpcap - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "libpcap.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "libpcap.mak" CFG="libpcap - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "libpcap - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "libpcap - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "libpcap - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ELSEIF "$(CFG)" == "libpcap - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ENDIF
-
-# Begin Target
-
-# Name "libpcap - Win32 Release"
-# Name "libpcap - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\bpf_dump.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\bpf\net\bpf_filter.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\bpf_image.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\etherent.c
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\fad-win32.c"
-# End Source File
-# Begin Source File
-
-SOURCE=..\Src\ffs.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\gencode.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\Src\getnetbynm.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\Src\getnetent.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\Src\getservent.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\grammar.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\inet.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\Src\inet_aton.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\Src\inet_net.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\Src\inet_pton.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\nametoaddr.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\optimize.c
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\Pcap-win32.c"
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\pcap.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\savefile.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\scanner.c
-# End Source File
-# End Target
-# End Project
diff --git a/contrib/libpcap/Win32/Prj/libpcap.dsw b/contrib/libpcap/Win32/Prj/libpcap.dsw
deleted file mode 100644
index 8cdff2d..0000000
--- a/contrib/libpcap/Win32/Prj/libpcap.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "libpcap"=".\libpcap.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/contrib/libpcap/Win32/Src/ffs.c b/contrib/libpcap/Win32/Src/ffs.c
deleted file mode 100644
index 099ff8e..0000000
--- a/contrib/libpcap/Win32/Src/ffs.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * Copyright (c) 1990, 1993
- * The Regents of the University of California. 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. 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)ffs.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-#include <string.h>
-
-/*
- * ffs -- vax ffs instruction
- */
-int
-ffs(mask)
- register int mask;
-{
- register int bit;
-
- if (mask == 0)
- return(0);
- for (bit = 1; !(mask & 1); bit++)
- mask >>= 1;
- return(bit);
-}
diff --git a/contrib/libpcap/Win32/Src/gai_strerror.c b/contrib/libpcap/Win32/Src/gai_strerror.c
deleted file mode 100644
index e90245a..0000000
--- a/contrib/libpcap/Win32/Src/gai_strerror.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
- * 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 project 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 PROJECT 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 PROJECT 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.
- */
-
-/*
-#include <sys/cdefs.h>
-
-__FBSDID("$FreeBSD$");
-
-*/
-
-#ifdef WIN32
-
-#include <ws2tcpip.h>
-
-#else
-
-#include <netdb.h>
-
-#endif
-
-/* Entries EAI_ADDRFAMILY (1) and EAI_NODATA (7) are obsoleted, but left */
-/* for backward compatibility with userland code prior to 2553bis-02 */
-static char *ai_errlist[] = {
- "Success", /* 0 */
- "Address family for hostname not supported", /* 1 */
- "Temporary failure in name resolution", /* EAI_AGAIN */
- "Invalid value for ai_flags", /* EAI_BADFLAGS */
- "Non-recoverable failure in name resolution", /* EAI_FAIL */
- "ai_family not supported", /* EAI_FAMILY */
- "Memory allocation failure", /* EAI_MEMORY */
- "No address associated with hostname", /* 7 */
- "hostname nor servname provided, or not known", /* EAI_NONAME */
- "servname not supported for ai_socktype", /* EAI_SERVICE */
- "ai_socktype not supported", /* EAI_SOCKTYPE */
- "System error returned in errno", /* EAI_SYSTEM */
- "Invalid value for hints", /* EAI_BADHINTS */
- "Resolved protocol is unknown" /* EAI_PROTOCOL */
-};
-
-#ifndef EAI_MAX
-#define EAI_MAX (sizeof(ai_errlist)/sizeof(ai_errlist[0]))
-#endif
-
-/* on MingW, gai_strerror is available.
- We need to compile gai_strerrorA only for Cygwin
- */
-#ifndef gai_strerror
-
-char *
-WSAAPI gai_strerrorA(int ecode)
-{
- if (ecode >= 0 && ecode < EAI_MAX)
- return ai_errlist[ecode];
- return "Unknown error";
-}
-
-#endif /* gai_strerror */ \ No newline at end of file
diff --git a/contrib/libpcap/Win32/Src/getaddrinfo.c b/contrib/libpcap/Win32/Src/getaddrinfo.c
deleted file mode 100644
index 8e8ad85..0000000
--- a/contrib/libpcap/Win32/Src/getaddrinfo.c
+++ /dev/null
@@ -1,1120 +0,0 @@
-/*
- * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
- * 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 project 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 PROJECT 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 PROJECT 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.
- */
-
-/*
- * "#ifdef FAITH" part is local hack for supporting IPv4-v6 translator.
- *
- * Issues to be discussed:
- * - Thread safe-ness must be checked.
- * - Return values. There are nonstandard return values defined and used
- * in the source code. This is because RFC2553 is silent about which error
- * code must be returned for which situation.
- * Note:
- * - We use getipnodebyname() just for thread-safeness. There's no intent
- * to let it do PF_UNSPEC (actually we never pass PF_UNSPEC to
- * getipnodebyname().
- * - The code filters out AFs that are not supported by the kernel,
- * when globbing NULL hostname (to loopback, or wildcard). Is it the right
- * thing to do? What is the relationship with post-RFC2553 AI_ADDRCONFIG
- * in ai_flags?
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef lint
-static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/libpcap/Win32/Src/getaddrinfo.c,v 1.3 2008-09-15 23:37:51 guy Exp $";
-#endif
-
-#include <pcap-stdinc.h>
-#if 0
-#include <sys/sysctl.h>
-#endif
-#ifndef __MINGW32__
-#include <arpa/nameser.h>
-#endif
-#include <string.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <errno.h>
-
-#ifndef HAVE_PORTABLE_PROTOTYPE
-#include "cdecl_ext.h"
-#endif
-
-#ifndef HAVE_U_INT32_T
-#include "bittypes.h"
-#endif
-
-#ifndef HAVE_SOCKADDR_STORAGE
-#ifndef __MINGW32__
-#include "sockstorage.h"
-#endif
-#endif
-
-#ifdef NEED_ADDRINFO_H
-#include "addrinfo.h"
-#ifdef WIN32
-#include "IP6_misc.h"
-#endif
-#endif
-
-
-#if defined(__KAME__) && defined(INET6)
-# define FAITH
-#endif
-
-#define SUCCESS 0
-#define ANY 0
-#define YES 1
-#define NO 0
-
-#ifdef FAITH
-static int translate = NO;
-static struct in6_addr faith_prefix = IN6ADDR_ANY_INIT;
-#endif
-
-static const char in_addrany[] = { 0, 0, 0, 0 };
-static const char in6_addrany[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-static const char in_loopback[] = { 127, 0, 0, 1 };
-static const char in6_loopback[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
-};
-
-struct sockinet {
- u_char si_len;
- u_char si_family;
- u_short si_port;
- u_int32_t si_scope_id;
-};
-
-static const struct afd {
- int a_af;
- int a_addrlen;
- int a_socklen;
- int a_off;
- const char *a_addrany;
- const char *a_loopback;
- int a_scoped;
-} afdl [] = {
-#ifdef INET6
- {PF_INET6, sizeof(struct in6_addr),
- sizeof(struct sockaddr_in6),
- offsetof(struct sockaddr_in6, sin6_addr),
- in6_addrany, in6_loopback, 1},
-#endif
- {PF_INET, sizeof(struct in_addr),
- sizeof(struct sockaddr_in),
- offsetof(struct sockaddr_in, sin_addr),
- in_addrany, in_loopback, 0},
- {0, 0, 0, 0, NULL, NULL, 0},
-};
-
-struct explore {
- int e_af;
- int e_socktype;
- int e_protocol;
- const char *e_protostr;
- int e_wild;
-#define WILD_AF(ex) ((ex)->e_wild & 0x01)
-#define WILD_SOCKTYPE(ex) ((ex)->e_wild & 0x02)
-#define WILD_PROTOCOL(ex) ((ex)->e_wild & 0x04)
-};
-
-static const struct explore explore[] = {
-#if 0
- { PF_LOCAL, 0, ANY, ANY, NULL, 0x01 },
-#endif
-#ifdef INET6
- { PF_INET6, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 },
- { PF_INET6, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 },
- { PF_INET6, SOCK_RAW, ANY, NULL, 0x05 },
-#endif
- { PF_INET, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 },
- { PF_INET, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 },
- { PF_INET, SOCK_RAW, ANY, NULL, 0x05 },
- { -1, 0, 0, NULL, 0 },
-};
-
-#ifdef INET6
-#define PTON_MAX 16
-#else
-#define PTON_MAX 4
-#endif
-
-
-static int str_isnumber __P((const char *));
-static int explore_fqdn __P((const struct addrinfo *, const char *,
- const char *, struct addrinfo **));
-static int explore_null __P((const struct addrinfo *, const char *,
- const char *, struct addrinfo **));
-static int explore_numeric __P((const struct addrinfo *, const char *,
- const char *, struct addrinfo **));
-static int explore_numeric_scope __P((const struct addrinfo *, const char *,
- const char *, struct addrinfo **));
-static int get_name __P((const char *, const struct afd *, struct addrinfo **,
- char *, const struct addrinfo *, const char *));
-static int get_canonname __P((const struct addrinfo *,
- struct addrinfo *, const char *));
-static struct addrinfo *get_ai __P((const struct addrinfo *,
- const struct afd *, const char *));
-static int get_portmatch __P((const struct addrinfo *, const char *));
-static int get_port __P((struct addrinfo *, const char *, int));
-static const struct afd *find_afd __P((int));
-
-static char *ai_errlist[] = {
- "Success",
- "Address family for hostname not supported", /* EAI_ADDRFAMILY */
- "Temporary failure in name resolution", /* EAI_AGAIN */
- "Invalid value for ai_flags", /* EAI_BADFLAGS */
- "Non-recoverable failure in name resolution", /* EAI_FAIL */
- "ai_family not supported", /* EAI_FAMILY */
- "Memory allocation failure", /* EAI_MEMORY */
- "No address associated with hostname", /* EAI_NODATA */
- "hostname nor servname provided, or not known", /* EAI_NONAME */
- "servname not supported for ai_socktype", /* EAI_SERVICE */
- "ai_socktype not supported", /* EAI_SOCKTYPE */
- "System error returned in errno", /* EAI_SYSTEM */
- "Invalid value for hints", /* EAI_BADHINTS */
- "Resolved protocol is unknown", /* EAI_PROTOCOL */
- "Unknown error", /* EAI_MAX */
-};
-
-/* XXX macros that make external reference is BAD. */
-
-#define GET_AI(ai, afd, addr) \
-do { \
- /* external reference: pai, error, and label free */ \
- (ai) = get_ai(pai, (afd), (addr)); \
- if ((ai) == NULL) { \
- error = EAI_MEMORY; \
- goto free; \
- } \
-} while (0)
-
-#define GET_PORT(ai, serv) \
-do { \
- /* external reference: error and label free */ \
- error = get_port((ai), (serv), 0); \
- if (error != 0) \
- goto free; \
-} while (0)
-
-#define GET_CANONNAME(ai, str) \
-do { \
- /* external reference: pai, error and label free */ \
- error = get_canonname(pai, (ai), (str)); \
- if (error != 0) \
- goto free; \
-} while (0)
-
-#define ERR(err) \
-do { \
- /* external reference: error, and label bad */ \
- error = (err); \
- goto bad; \
-} while (0)
-
-#define MATCH_FAMILY(x, y, w) \
- ((x) == (y) || ((w) && ((x) == PF_UNSPEC || (y) == PF_UNSPEC)))
-#define MATCH(x, y, w) \
- ((x) == (y) || ((w) && ((x) == ANY || (y) == ANY)))
-
-#if defined(DEFINE_ADDITIONAL_IPV6_STUFF)
-char *
-gai_strerror(ecode)
- int ecode;
-{
- if (ecode < 0 || ecode > EAI_MAX)
- ecode = EAI_MAX;
- return ai_errlist[ecode];
-}
-#endif
-
-void
-freeaddrinfo(ai)
- struct addrinfo *ai;
-{
- struct addrinfo *next;
-
- do {
- next = ai->ai_next;
- if (ai->ai_canonname)
- free(ai->ai_canonname);
- /* no need to free(ai->ai_addr) */
- free(ai);
- } while ((ai = next) != NULL);
-}
-
-static int
-str_isnumber(p)
- const char *p;
-{
- char *q = (char *)p;
- while (*q) {
- if (! isdigit(*q))
- return NO;
- q++;
- }
- return YES;
-}
-
-int
-getaddrinfo(hostname, servname, hints, res)
- const char *hostname, *servname;
- const struct addrinfo *hints;
- struct addrinfo **res;
-{
- struct addrinfo sentinel;
- struct addrinfo *cur;
- int error = 0;
- struct addrinfo ai;
- struct addrinfo ai0;
- struct addrinfo *pai;
- const struct afd *afd;
- const struct explore *ex;
-
-#ifdef FAITH
- static int firsttime = 1;
-
- if (firsttime) {
- /* translator hack */
- char *q = getenv("GAI");
- if (q && inet_pton(AF_INET6, q, &faith_prefix) == 1)
- translate = YES;
- firsttime = 0;
- }
-#endif
-
- sentinel.ai_next = NULL;
- cur = &sentinel;
- pai = &ai;
- pai->ai_flags = 0;
- pai->ai_family = PF_UNSPEC;
- pai->ai_socktype = ANY;
- pai->ai_protocol = ANY;
- pai->ai_addrlen = 0;
- pai->ai_canonname = NULL;
- pai->ai_addr = NULL;
- pai->ai_next = NULL;
-
- if (hostname == NULL && servname == NULL)
- return EAI_NONAME;
- if (hints) {
- /* error check for hints */
- if (hints->ai_addrlen || hints->ai_canonname ||
- hints->ai_addr || hints->ai_next)
- ERR(EAI_BADHINTS); /* xxx */
- if (hints->ai_flags & ~AI_MASK)
- ERR(EAI_BADFLAGS);
- switch (hints->ai_family) {
- case PF_UNSPEC:
- case PF_INET:
-#ifdef INET6
- case PF_INET6:
-#endif
- break;
- default:
- ERR(EAI_FAMILY);
- }
- memcpy(pai, hints, sizeof(*pai));
-
- /*
- * if both socktype/protocol are specified, check if they
- * are meaningful combination.
- */
- if (pai->ai_socktype != ANY && pai->ai_protocol != ANY) {
- for (ex = explore; ex->e_af >= 0; ex++) {
- if (pai->ai_family != ex->e_af)
- continue;
- if (ex->e_socktype == ANY)
- continue;
- if (ex->e_protocol == ANY)
- continue;
- if (pai->ai_socktype == ex->e_socktype
- && pai->ai_protocol != ex->e_protocol) {
- ERR(EAI_BADHINTS);
- }
- }
- }
- }
-
- /*
- * check for special cases. (1) numeric servname is disallowed if
- * socktype/protocol are left unspecified. (2) servname is disallowed
- * for raw and other inet{,6} sockets.
- */
- if (MATCH_FAMILY(pai->ai_family, PF_INET, 1)
-#ifdef PF_INET6
- || MATCH_FAMILY(pai->ai_family, PF_INET6, 1)
-#endif
- ) {
- ai0 = *pai;
-
- if (pai->ai_family == PF_UNSPEC) {
-#ifdef PF_INET6
- pai->ai_family = PF_INET6;
-#else
- pai->ai_family = PF_INET;
-#endif
- }
- error = get_portmatch(pai, servname);
- if (error)
- ERR(error);
-
- *pai = ai0;
- }
-
- ai0 = *pai;
-
- /* NULL hostname, or numeric hostname */
- for (ex = explore; ex->e_af >= 0; ex++) {
- *pai = ai0;
-
- if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex)))
- continue;
- if (!MATCH(pai->ai_socktype, ex->e_socktype, WILD_SOCKTYPE(ex)))
- continue;
- if (!MATCH(pai->ai_protocol, ex->e_protocol, WILD_PROTOCOL(ex)))
- continue;
-
- if (pai->ai_family == PF_UNSPEC)
- pai->ai_family = ex->e_af;
- if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
- pai->ai_socktype = ex->e_socktype;
- if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
- pai->ai_protocol = ex->e_protocol;
-
- if (hostname == NULL)
- error = explore_null(pai, hostname, servname, &cur->ai_next);
- else
- error = explore_numeric_scope(pai, hostname, servname, &cur->ai_next);
-
- if (error)
- goto free;
-
- while (cur && cur->ai_next)
- cur = cur->ai_next;
- }
-
- /*
- * XXX
- * If numreic representation of AF1 can be interpreted as FQDN
- * representation of AF2, we need to think again about the code below.
- */
- if (sentinel.ai_next)
- goto good;
-
- if (pai->ai_flags & AI_NUMERICHOST)
- ERR(EAI_NONAME);
- if (hostname == NULL)
- ERR(EAI_NONAME);
-
- /*
- * hostname as alphabetical name.
- * we would like to prefer AF_INET6 than AF_INET, so we'll make a
- * outer loop by AFs.
- */
- for (afd = afdl; afd->a_af; afd++) {
- *pai = ai0;
-
- if (!MATCH_FAMILY(pai->ai_family, afd->a_af, 1))
- continue;
-
- for (ex = explore; ex->e_af >= 0; ex++) {
- *pai = ai0;
-
- if (pai->ai_family == PF_UNSPEC)
- pai->ai_family = afd->a_af;
-
- if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex)))
- continue;
- if (!MATCH(pai->ai_socktype, ex->e_socktype,
- WILD_SOCKTYPE(ex))) {
- continue;
- }
- if (!MATCH(pai->ai_protocol, ex->e_protocol,
- WILD_PROTOCOL(ex))) {
- continue;
- }
-
- if (pai->ai_family == PF_UNSPEC)
- pai->ai_family = ex->e_af;
- if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
- pai->ai_socktype = ex->e_socktype;
- if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
- pai->ai_protocol = ex->e_protocol;
-
- error = explore_fqdn(pai, hostname, servname,
- &cur->ai_next);
-
- while (cur && cur->ai_next)
- cur = cur->ai_next;
- }
- }
-
- /* XXX */
- if (sentinel.ai_next)
- error = 0;
-
- if (error)
- goto free;
- if (error == 0) {
- if (sentinel.ai_next) {
- good:
- *res = sentinel.ai_next;
- return SUCCESS;
- } else
- error = EAI_FAIL;
- }
- free:
- bad:
- if (sentinel.ai_next)
- freeaddrinfo(sentinel.ai_next);
- *res = NULL;
- return error;
-}
-
-/*
- * FQDN hostname, DNS lookup
- */
-static int
-explore_fqdn(pai, hostname, servname, res)
- const struct addrinfo *pai;
- const char *hostname;
- const char *servname;
- struct addrinfo **res;
-{
- struct hostent *hp;
- int h_error;
- int af;
- char **aplist = NULL, *apbuf = NULL;
- char *ap;
- struct addrinfo sentinel, *cur;
- int i;
-#ifndef USE_GETIPNODEBY
- int naddrs;
-#endif
- const struct afd *afd;
- int error;
-
- *res = NULL;
- sentinel.ai_next = NULL;
- cur = &sentinel;
-
- /*
- * Do not filter unsupported AFs here. We need to honor content of
- * databases (/etc/hosts, DNS and others). Otherwise we cannot
- * replace gethostbyname() by getaddrinfo().
- */
-
- /*
- * if the servname does not match socktype/protocol, ignore it.
- */
- if (get_portmatch(pai, servname) != 0)
- return 0;
-
- afd = find_afd(pai->ai_family);
-
- /*
- * post-RFC2553: should look at (pai->ai_flags & AI_ADDRCONFIG)
- * rather than hardcoding it. we may need to add AI_ADDRCONFIG
- * handling code by ourselves in case we don't have getipnodebyname().
- */
-#ifdef USE_GETIPNODEBY
- hp = getipnodebyname(hostname, pai->ai_family, AI_ADDRCONFIG, &h_error);
-#else
-#ifdef HAVE_GETHOSTBYNAME2
- hp = gethostbyname2(hostname, pai->ai_family);
-#else
- if (pai->ai_family != AF_INET)
- return 0;
- hp = gethostbyname(hostname);
-#ifdef HAVE_H_ERRNO
- h_error = h_errno;
-#else
- h_error = EINVAL;
-#endif
-#endif /*HAVE_GETHOSTBYNAME2*/
-#endif /*USE_GETIPNODEBY*/
-
- if (hp == NULL) {
- switch (h_error) {
- case HOST_NOT_FOUND:
- case NO_DATA:
- error = EAI_NODATA;
- break;
- case TRY_AGAIN:
- error = EAI_AGAIN;
- break;
- case NO_RECOVERY:
- case NETDB_INTERNAL:
- default:
- error = EAI_FAIL;
- break;
- }
- } else if ((hp->h_name == NULL) || (hp->h_name[0] == 0)
- || (hp->h_addr_list[0] == NULL)) {
-#ifdef USE_GETIPNODEBY
- freehostent(hp);
-#endif
- hp = NULL;
- error = EAI_FAIL;
- }
-
- if (hp == NULL)
- goto free;
-
-#ifdef USE_GETIPNODEBY
- aplist = hp->h_addr_list;
-#else
- /*
- * hp will be overwritten if we use gethostbyname2().
- * always deep copy for simplification.
- */
- for (naddrs = 0; hp->h_addr_list[naddrs] != NULL; naddrs++)
- ;
- naddrs++;
- aplist = (char **)malloc(sizeof(aplist[0]) * naddrs);
- apbuf = (char *)malloc(hp->h_length * naddrs);
- if (aplist == NULL || apbuf == NULL) {
- error = EAI_MEMORY;
- goto free;
- }
- memset(aplist, 0, sizeof(aplist[0]) * naddrs);
- for (i = 0; i < naddrs; i++) {
- if (hp->h_addr_list[i] == NULL) {
- aplist[i] = NULL;
- continue;
- }
- memcpy(&apbuf[i * hp->h_length], hp->h_addr_list[i],
- hp->h_length);
- aplist[i] = &apbuf[i * hp->h_length];
- }
-#endif
-
- for (i = 0; aplist[i] != NULL; i++) {
- af = hp->h_addrtype;
- ap = aplist[i];
-#ifdef AF_INET6
- if (af == AF_INET6
- && IN6_IS_ADDR_V4MAPPED((struct in6_addr *)ap)) {
- af = AF_INET;
- ap = ap + sizeof(struct in6_addr)
- - sizeof(struct in_addr);
- }
-#endif
-
- if (af != pai->ai_family)
- continue;
-
- if ((pai->ai_flags & AI_CANONNAME) == 0) {
- GET_AI(cur->ai_next, afd, ap);
- GET_PORT(cur->ai_next, servname);
- } else {
- /*
- * if AI_CANONNAME and if reverse lookup
- * fail, return ai anyway to pacify
- * calling application.
- *
- * XXX getaddrinfo() is a name->address
- * translation function, and it looks
- * strange that we do addr->name
- * translation here.
- */
- get_name(ap, afd, &cur->ai_next,
- ap, pai, servname);
- }
-
- while (cur && cur->ai_next)
- cur = cur->ai_next;
- }
-
- *res = sentinel.ai_next;
- return 0;
-
-free:
-#ifdef USE_GETIPNODEBY
- if (hp)
- freehostent(hp);
-#endif
- if (aplist)
- free(aplist);
- if (apbuf)
- free(apbuf);
- if (sentinel.ai_next)
- freeaddrinfo(sentinel.ai_next);
- return error;
-}
-
-/*
- * hostname == NULL.
- * passive socket -> anyaddr (0.0.0.0 or ::)
- * non-passive socket -> localhost (127.0.0.1 or ::1)
- */
-static int
-explore_null(pai, hostname, servname, res)
- const struct addrinfo *pai;
- const char *hostname;
- const char *servname;
- struct addrinfo **res;
-{
- int s;
- const struct afd *afd;
- struct addrinfo *cur;
- struct addrinfo sentinel;
- int error;
-
- *res = NULL;
- sentinel.ai_next = NULL;
- cur = &sentinel;
-
- /*
- * filter out AFs that are not supported by the kernel
- * XXX errno?
- */
- s = socket(pai->ai_family, SOCK_DGRAM, 0);
- if (s < 0) {
- if (errno != EMFILE)
- return 0;
- } else
- close(s);
-
- /*
- * if the servname does not match socktype/protocol, ignore it.
- */
- if (get_portmatch(pai, servname) != 0)
- return 0;
-
- afd = find_afd(pai->ai_family);
-
- if (pai->ai_flags & AI_PASSIVE) {
- GET_AI(cur->ai_next, afd, afd->a_addrany);
- /* xxx meaningless?
- * GET_CANONNAME(cur->ai_next, "anyaddr");
- */
- GET_PORT(cur->ai_next, servname);
- } else {
- GET_AI(cur->ai_next, afd, afd->a_loopback);
- /* xxx meaningless?
- * GET_CANONNAME(cur->ai_next, "localhost");
- */
- GET_PORT(cur->ai_next, servname);
- }
- cur = cur->ai_next;
-
- *res = sentinel.ai_next;
- return 0;
-
-free:
- if (sentinel.ai_next)
- freeaddrinfo(sentinel.ai_next);
- return error;
-}
-
-/*
- * numeric hostname
- */
-static int
-explore_numeric(pai, hostname, servname, res)
- const struct addrinfo *pai;
- const char *hostname;
- const char *servname;
- struct addrinfo **res;
-{
- const struct afd *afd;
- struct addrinfo *cur;
- struct addrinfo sentinel;
- int error;
- char pton[PTON_MAX];
- int flags;
-
- *res = NULL;
- sentinel.ai_next = NULL;
- cur = &sentinel;
-
- /*
- * if the servname does not match socktype/protocol, ignore it.
- */
- if (get_portmatch(pai, servname) != 0)
- return 0;
-
- afd = find_afd(pai->ai_family);
- flags = pai->ai_flags;
-
- if (inet_pton(afd->a_af, hostname, pton) == 1) {
- u_int32_t v4a;
-#ifdef INET6
- u_char pfx;
-#endif
-
- switch (afd->a_af) {
- case AF_INET:
- v4a = (u_int32_t)ntohl(((struct in_addr *)pton)->s_addr);
- if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a))
- flags &= ~AI_CANONNAME;
- v4a >>= IN_CLASSA_NSHIFT;
- if (v4a == 0 || v4a == IN_LOOPBACKNET)
- flags &= ~AI_CANONNAME;
- break;
-#ifdef INET6
- case AF_INET6:
- pfx = ((struct in6_addr *)pton)->s6_addr[0];
- if (pfx == 0 || pfx == 0xfe || pfx == 0xff)
- flags &= ~AI_CANONNAME;
- break;
-#endif
- }
-
- if (pai->ai_family == afd->a_af ||
- pai->ai_family == PF_UNSPEC /*?*/) {
- if ((flags & AI_CANONNAME) == 0) {
- GET_AI(cur->ai_next, afd, pton);
- GET_PORT(cur->ai_next, servname);
- } else {
- /*
- * if AI_CANONNAME and if reverse lookup
- * fail, return ai anyway to pacify
- * calling application.
- *
- * XXX getaddrinfo() is a name->address
- * translation function, and it looks
- * strange that we do addr->name
- * translation here.
- */
- get_name(pton, afd, &cur->ai_next,
- pton, pai, servname);
- }
- while (cur && cur->ai_next)
- cur = cur->ai_next;
- } else
- ERR(EAI_FAMILY); /*xxx*/
- }
-
- *res = sentinel.ai_next;
- return 0;
-
-free:
-bad:
- if (sentinel.ai_next)
- freeaddrinfo(sentinel.ai_next);
- return error;
-}
-
-/*
- * numeric hostname with scope
- */
-static int
-explore_numeric_scope(pai, hostname, servname, res)
- const struct addrinfo *pai;
- const char *hostname;
- const char *servname;
- struct addrinfo **res;
-{
-#ifndef SCOPE_DELIMITER
- return explore_numeric(pai, hostname, servname, res);
-#else
- const struct afd *afd;
- struct addrinfo *cur;
- int error;
- char *cp, *hostname2 = NULL;
- int scope;
- struct sockaddr_in6 *sin6;
-
- /*
- * if the servname does not match socktype/protocol, ignore it.
- */
- if (get_portmatch(pai, servname) != 0)
- return 0;
-
- afd = find_afd(pai->ai_family);
- if (!afd->a_scoped)
- return explore_numeric(pai, hostname, servname, res);
-
- cp = strchr(hostname, SCOPE_DELIMITER);
- if (cp == NULL)
- return explore_numeric(pai, hostname, servname, res);
-
- /*
- * Handle special case of <scoped_address><delimiter><scope id>
- */
- hostname2 = strdup(hostname);
- if (hostname2 == NULL)
- return EAI_MEMORY;
- /* terminate at the delimiter */
- hostname2[cp - hostname] = '\0';
-
- cp++;
- switch (pai->ai_family) {
-#ifdef INET6
- case AF_INET6:
- scope = if_nametoindex(cp);
- if (scope == 0) {
- free(hostname2);
- return (EAI_NONAME);
- }
- break;
-#endif
- }
-
- error = explore_numeric(pai, hostname2, servname, res);
- if (error == 0) {
- for (cur = *res; cur; cur = cur->ai_next) {
- if (cur->ai_family != AF_INET6)
- continue;
- sin6 = (struct sockaddr_in6 *)cur->ai_addr;
- if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr) ||
- IN6_IS_ADDR_MC_LINKLOCAL(&sin6->sin6_addr))
- sin6->sin6_scope_id = scope;
- }
- }
-
- free(hostname2);
-
- return error;
-#endif
-}
-
-static int
-get_name(addr, afd, res, numaddr, pai, servname)
- const char *addr;
- const struct afd *afd;
- struct addrinfo **res;
- char *numaddr;
- const struct addrinfo *pai;
- const char *servname;
-{
- struct hostent *hp = NULL;
- struct addrinfo *cur = NULL;
- int error = 0;
- char *ap = NULL, *cn = NULL;
-#ifdef USE_GETIPNODEBY
- int h_error;
-
- hp = getipnodebyaddr(addr, afd->a_addrlen, afd->a_af, &h_error);
-#else
- hp = gethostbyaddr(addr, afd->a_addrlen, afd->a_af);
-#endif
- if (hp && hp->h_name && hp->h_name[0] && hp->h_addr_list[0]) {
-#ifdef USE_GETIPNODEBY
- GET_AI(cur, afd, hp->h_addr_list[0]);
- GET_PORT(cur, servname);
- GET_CANONNAME(cur, hp->h_name);
-#else
- /* hp will be damaged if we use gethostbyaddr() */
- if ((ap = (char *)malloc(hp->h_length)) == NULL) {
- error = EAI_MEMORY;
- goto free;
- }
- memcpy(ap, hp->h_addr_list[0], hp->h_length);
- if ((cn = strdup(hp->h_name)) == NULL) {
- error = EAI_MEMORY;
- goto free;
- }
-
- GET_AI(cur, afd, ap);
- GET_PORT(cur, servname);
- GET_CANONNAME(cur, cn);
- free(ap); ap = NULL;
- free(cn); cn = NULL;
-#endif
- } else {
- GET_AI(cur, afd, numaddr);
- GET_PORT(cur, servname);
- }
-
-#ifdef USE_GETIPNODEBY
- if (hp)
- freehostent(hp);
-#endif
- *res = cur;
- return SUCCESS;
- free:
- if (cur)
- freeaddrinfo(cur);
- if (ap)
- free(ap);
- if (cn)
- free(cn);
-#ifdef USE_GETIPNODEBY
- if (hp)
- freehostent(hp);
-#endif
- *res = NULL;
- return error;
-}
-
-static int
-get_canonname(pai, ai, str)
- const struct addrinfo *pai;
- struct addrinfo *ai;
- const char *str;
-{
- if ((pai->ai_flags & AI_CANONNAME) != 0) {
- ai->ai_canonname = strdup(str);
- if (ai->ai_canonname == NULL)
- return EAI_MEMORY;
- }
- return 0;
-}
-
-static struct addrinfo *
-get_ai(pai, afd, addr)
- const struct addrinfo *pai;
- const struct afd *afd;
- const char *addr;
-{
- char *p;
- struct addrinfo *ai;
-
- ai = (struct addrinfo *)malloc(sizeof(struct addrinfo)
- + (afd->a_socklen));
- if (ai == NULL)
- return NULL;
-
- memcpy(ai, pai, sizeof(struct addrinfo));
- ai->ai_addr = (struct sockaddr *)(ai + 1);
- memset(ai->ai_addr, 0, afd->a_socklen);
-#ifdef HAVE_SOCKADDR_SA_LEN
- ai->ai_addr->sa_len = afd->a_socklen;
-#endif
- ai->ai_addrlen = afd->a_socklen;
- ai->ai_addr->sa_family = ai->ai_family = afd->a_af;
- p = (char *)(ai->ai_addr);
- memcpy(p + afd->a_off, addr, afd->a_addrlen);
- return ai;
-}
-
-static int
-get_portmatch(ai, servname)
- const struct addrinfo *ai;
- const char *servname;
-{
-
- /* get_port does not touch first argument. when matchonly == 1. */
- return get_port((struct addrinfo *)ai, servname, 1);
-}
-
-static int
-get_port(ai, servname, matchonly)
- struct addrinfo *ai;
- const char *servname;
- int matchonly;
-{
- const char *proto;
- struct servent *sp;
- int port;
- int allownumeric;
-
- if (servname == NULL)
- return 0;
- switch (ai->ai_family) {
- case AF_INET:
-#ifdef AF_INET6
- case AF_INET6:
-#endif
- break;
- default:
- return 0;
- }
-
- switch (ai->ai_socktype) {
- case SOCK_RAW:
- return EAI_SERVICE;
- case SOCK_DGRAM:
- case SOCK_STREAM:
- allownumeric = 1;
- break;
- case ANY:
- allownumeric = 0;
- break;
- default:
- return EAI_SOCKTYPE;
- }
-
- if (str_isnumber(servname)) {
- if (!allownumeric)
- return EAI_SERVICE;
- port = htons(atoi(servname));
- if (port < 0 || port > 65535)
- return EAI_SERVICE;
- } else {
- switch (ai->ai_socktype) {
- case SOCK_DGRAM:
- proto = "udp";
- break;
- case SOCK_STREAM:
- proto = "tcp";
- break;
- default:
- proto = NULL;
- break;
- }
-
- if ((sp = getservbyname(servname, proto)) == NULL)
- return EAI_SERVICE;
- port = sp->s_port;
- }
-
- if (!matchonly) {
- switch (ai->ai_family) {
- case AF_INET:
- ((struct sockaddr_in *)ai->ai_addr)->sin_port = port;
- break;
-#ifdef INET6
- case AF_INET6:
- ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port = port;
- break;
-#endif
- }
- }
-
- return 0;
-}
-
-static const struct afd *
-find_afd(af)
- int af;
-{
- const struct afd *afd;
-
- if (af == PF_UNSPEC)
- return NULL;
- for (afd = afdl; afd->a_af; afd++) {
- if (afd->a_af == af)
- return afd;
- }
- return NULL;
-}
diff --git a/contrib/libpcap/Win32/Src/getnetbynm.c b/contrib/libpcap/Win32/Src/getnetbynm.c
deleted file mode 100644
index fa4d398..0000000
--- a/contrib/libpcap/Win32/Src/getnetbynm.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)getnetbyname.c 5.5 (Berkeley) 6/27/88";
-#endif /* LIBC_SCCS and not lint */
-
-#include "inetprivate.h"
-
-extern int _net_stayopen;
-
-struct netent *
-getnetbyname(const char *name)
-{
- register struct netent *p;
- register char **cp;
-
- setnetent(_net_stayopen);
- while (p = getnetent()) {
- if (strcmp(p->n_name, name) == 0)
- break;
- for (cp = p->n_aliases; *cp != 0; cp++)
- if (strcmp(*cp, name) == 0)
- goto found;
- }
-found:
- if (!_net_stayopen)
- endnetent();
- return (p);
-}
diff --git a/contrib/libpcap/Win32/Src/getnetent.c b/contrib/libpcap/Win32/Src/getnetent.c
deleted file mode 100644
index d4cceb3..0000000
--- a/contrib/libpcap/Win32/Src/getnetent.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)getnetent.c 5.5 (Berkeley) 6/27/88";
-#endif /* LIBC_SCCS and not lint */
-
-#include "inetprivate.h"
-
-#define MAXALIASES 35
-
-static char NETDB[] = _PATH_NETWORKS;
-static FILE *netf = NULL;
-static char line[BUFSIZ+1];
-static struct netent net;
-static char *net_aliases[MAXALIASES];
-static char *any(char *, char *);
-
-int _net_stayopen;
-extern u_int32_t inet_network(const char *cp);
-
-void
-setnetent(f)
- int f;
-{
- if (netf == NULL)
- netf = fopen(NETDB, "r" );
- else
- rewind(netf);
- _net_stayopen |= f;
-}
-
-void
-endnetent()
-{
- if (netf) {
- fclose(netf);
- netf = NULL;
- }
- _net_stayopen = 0;
-}
-
-struct netent *
-getnetent()
-{
- char *p;
- register char *cp, **q;
-
- if (netf == NULL && (netf = fopen(NETDB, "r" )) == NULL)
- return (NULL);
-again:
- p = fgets(line, BUFSIZ, netf);
- if (p == NULL)
- return (NULL);
- if (*p == '#')
- goto again;
- cp = any(p, "#\n");
- if (cp == NULL)
- goto again;
- *cp = '\0';
- net.n_name = p;
- cp = any(p, " \t");
- if (cp == NULL)
- goto again;
- *cp++ = '\0';
- while (*cp == ' ' || *cp == '\t')
- cp++;
- p = any(cp, " \t");
- if (p != NULL)
- *p++ = '\0';
- net.n_net = inet_network(cp);
- net.n_addrtype = AF_INET;
- q = net.n_aliases = net_aliases;
- if (p != NULL)
- cp = p;
- while (cp && *cp) {
- if (*cp == ' ' || *cp == '\t') {
- cp++;
- continue;
- }
- if (q < &net_aliases[MAXALIASES - 1])
- *q++ = cp;
- cp = any(cp, " \t");
- if (cp != NULL)
- *cp++ = '\0';
- }
- *q = NULL;
- return (&net);
-}
-
-static char *
-any(cp, match)
- register char *cp;
- char *match;
-{
- register char *mp, c;
-
- while (c = *cp) {
- for (mp = match; *mp; mp++)
- if (*mp == c)
- return (cp);
- cp++;
- }
- return ((char *)0);
-}
diff --git a/contrib/libpcap/Win32/Src/getopt.c b/contrib/libpcap/Win32/Src/getopt.c
deleted file mode 100644
index 03c2086..0000000
--- a/contrib/libpcap/Win32/Src/getopt.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 1987, 1993, 1994
- * The Regents of the University of California. 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. 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)getopt.c 8.3 (Berkeley) 4/27/95";
-#endif /* LIBC_SCCS and not lint */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int opterr = 1, /* if error message should be printed */
- optind = 1, /* index into parent argv vector */
- optopt, /* character checked for validity */
- optreset; /* reset getopt */
-char *optarg; /* argument associated with option */
-
-#define BADCH (int)'?'
-#define BADARG (int)':'
-#define EMSG ""
-
-/*
- * getopt --
- * Parse argc/argv argument vector.
- */
-int
-getopt(nargc, nargv, ostr)
- int nargc;
- char * const *nargv;
- const char *ostr;
-{
-#ifdef WIN32
- char *__progname="windump";
-#else
- extern char *__progname;
-#endif
- static char *place = EMSG; /* option letter processing */
- char *oli; /* option letter list index */
-
- if (optreset || !*place) { /* update scanning pointer */
- optreset = 0;
- if (optind >= nargc || *(place = nargv[optind]) != '-') {
- place = EMSG;
- return (-1);
- }
- if (place[1] && *++place == '-') { /* found "--" */
- ++optind;
- place = EMSG;
- return (-1);
- }
- } /* option letter okay? */
- if ((optopt = (int)*place++) == (int)':' ||
- !(oli = strchr(ostr, optopt))) {
- /*
- * if the user didn't specify '-' as an option,
- * assume it means -1.
- */
- if (optopt == (int)'-')
- return (-1);
- if (!*place)
- ++optind;
- if (opterr && *ostr != ':')
- (void)fprintf(stderr,
- "%s: illegal option -- %c\n", __progname, optopt);
- return (BADCH);
- }
- if (*++oli != ':') { /* don't need argument */
- optarg = NULL;
- if (!*place)
- ++optind;
- }
- else { /* need an argument */
- if (*place) /* no white space */
- optarg = place;
- else if (nargc <= ++optind) { /* no arg */
- place = EMSG;
- if (*ostr == ':')
- return (BADARG);
- if (opterr)
- (void)fprintf(stderr,
- "%s: option requires an argument -- %c\n",
- __progname, optopt);
- return (BADCH);
- }
- else /* white space */
- optarg = nargv[optind];
- place = EMSG;
- ++optind;
- }
- return (optopt); /* dump back option letter */
-}
diff --git a/contrib/libpcap/Win32/Src/getservent.c b/contrib/libpcap/Win32/Src/getservent.c
deleted file mode 100644
index 61b8cb0..0000000
--- a/contrib/libpcap/Win32/Src/getservent.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. 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. 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)getservent.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-#include <sys/types.h>
-#include <string.h>
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <net/netdb.h>
-#include <stdio.h>
-#include <errno.h>
-#include <arpa/nameser.h>
-
-#define MAXALIASES 35
-
-static char SERVDB[] = _PATH_SERVICES;
-static FILE *servf = NULL;
-static char line[BUFSIZ+1];
-static struct servent serv;
-static char *serv_aliases[MAXALIASES];
-int _serv_stayopen;
-
-void
-setservent(f)
- int f;
-{
- if (servf == NULL)
- servf = fopen(SERVDB, "r" );
- else
- rewind(servf);
- _serv_stayopen |= f;
-}
-
-void
-endservent()
-{
- if (servf) {
- fclose(servf);
- servf = NULL;
- }
- _serv_stayopen = 0;
-}
-
-struct servent *
-getservent()
-{
- char *p;
- register char *cp, **q;
-
- if (servf == NULL && (servf = fopen(SERVDB, "r" )) == NULL)
- return (NULL);
-again:
- if ((p = fgets(line, BUFSIZ, servf)) == NULL)
- return (NULL);
- if (*p == '#')
- goto again;
- cp = strpbrk(p, "#\n");
- if (cp == NULL)
- goto again;
- *cp = '\0';
- serv.s_name = p;
- p = strpbrk(p, " \t");
- if (p == NULL)
- goto again;
- *p++ = '\0';
- while (*p == ' ' || *p == '\t')
- p++;
- cp = strpbrk(p, ",/");
- if (cp == NULL)
- goto again;
- *cp++ = '\0';
- serv.s_port = htons((u_short)atoi(p));
- serv.s_proto = cp;
- q = serv.s_aliases = serv_aliases;
- cp = strpbrk(cp, " \t");
- if (cp != NULL)
- *cp++ = '\0';
- while (cp && *cp) {
- if (*cp == ' ' || *cp == '\t') {
- cp++;
- continue;
- }
- if (q < &serv_aliases[MAXALIASES - 1])
- *q++ = cp;
- cp = strpbrk(cp, " \t");
- if (cp != NULL)
- *cp++ = '\0';
- }
- *q = NULL;
- return (&serv);
-}
diff --git a/contrib/libpcap/Win32/Src/inet_aton.c b/contrib/libpcap/Win32/Src/inet_aton.c
deleted file mode 100644
index 3da6667..0000000
--- a/contrib/libpcap/Win32/Src/inet_aton.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. 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: inet_aton.c,v 1.2 2003-11-15 23:24:06 guy Exp $ */
-
-#ifndef lint
-static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/libpcap/Win32/Src/inet_aton.c,v 1.2 2003-11-15 23:24:06 guy Exp $";
-#endif
-
-#include <sys/types.h>
-#include <pcap-stdinc.h>
-
-/* Minimal implementation of inet_aton.
- * Cannot distinguish between failure and a local broadcast address. */
-
-#ifndef INADDR_NONE
-#define INADDR_NONE 0xffffffff
-#endif
-
-int
-inet_aton(const char *cp, struct in_addr *addr)
-{
- addr->s_addr = inet_addr(cp);
- return (addr->s_addr == INADDR_NONE) ? 0 : 1;
-}
diff --git a/contrib/libpcap/Win32/Src/inet_net.c b/contrib/libpcap/Win32/Src/inet_net.c
deleted file mode 100644
index 5bbe391..0000000
--- a/contrib/libpcap/Win32/Src/inet_net.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- * 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. 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)inet_network.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-#include "inetprivate.h"
-
-/*
- * Internet network address interpretation routine.
- * The library routines call this routine to interpret
- * network numbers.
- */
-u_int32_t
-inet_network(const char *cp)
-{
- register u_long val, base, n;
- register char c;
- u_long parts[4], *pp = parts;
- register int i;
-
-again:
- /*
- * Collect number up to ``.''.
- * Values are specified as for C:
- * 0x=hex, 0=octal, other=decimal.
- */
- val = 0; base = 10;
- /*
- * The 4.4BSD version of this file also accepts 'x__' as a hexa
- * number. I don't think this is correct. -- Uli
- */
- if (*cp == '0') {
- if (*++cp == 'x' || *cp == 'X')
- base = 16, cp++;
- else
- base = 8;
- }
- while ((c = *cp)) {
- if (isdigit(c)) {
- val = (val * base) + (c - '0');
- cp++;
- continue;
- }
- if (base == 16 && isxdigit(c)) {
- val = (val << 4) + (c + 10 - (islower(c) ? 'a' : 'A'));
- cp++;
- continue;
- }
- break;
- }
- if (*cp == '.') {
- if (pp >= parts + 4)
- return (INADDR_NONE);
- *pp++ = val, cp++;
- goto again;
- }
- if (*cp && !isspace(*cp))
- return (INADDR_NONE);
- *pp++ = val;
- n = pp - parts;
- if (n > 4)
- return (INADDR_NONE);
- for (val = 0, i = 0; i < (int)n; i++) {
- val <<= 8;
- val |= parts[i] & 0xff;
- }
- return (val);
-}
diff --git a/contrib/libpcap/Win32/Src/inet_pton.c b/contrib/libpcap/Win32/Src/inet_pton.c
deleted file mode 100644
index 7933a4e..0000000
--- a/contrib/libpcap/Win32/Src/inet_pton.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. 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: inet_pton.c,v 1.3 2007-09-27 18:02:20 gianluca Exp $ */
-
-#ifndef lint
-static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/libpcap/Win32/Src/inet_pton.c,v 1.3 2007-09-27 18:02:20 gianluca Exp $";
-#endif
-
-#include <errno.h>
-
-#ifdef WIN32
-#ifndef EAFNOSUPPORT
-#define EAFNOSUPPORT 97 /* not present in errno.h provided with VC */
-#endif
-#endif
-
-#ifdef __MINGW32__
-int* _errno();
-#define errno (*_errno())
-#endif /* __MINGW32__ */
-
-#include <pcap-stdinc.h>
-
-int inet_aton(const char *cp, struct in_addr *addr);
-
-int
-inet_pton(int af, const char *src, void *dst)
-{
- if (af != AF_INET) {
- errno = EAFNOSUPPORT;
- return -1;
- }
- return inet_aton (src, dst);
-}
diff --git a/contrib/libpcap/msdos/bin2c.c b/contrib/libpcap/msdos/bin2c.c
deleted file mode 100644
index a6a3c88..0000000
--- a/contrib/libpcap/msdos/bin2c.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <time.h>
-
-static void Abort (char *fmt,...)
-{
- va_list args;
- va_start (args, fmt);
- vfprintf (stderr, fmt, args);
- va_end (args);
- exit (1);
-}
-
-int main (int argc, char **argv)
-{
- FILE *inFile;
- FILE *outFile = stdout;
- time_t now = time (NULL);
- int ch, i;
-
- if (argc != 2)
- Abort ("Usage: %s bin-file [> result]", argv[0]);
-
- if ((inFile = fopen(argv[1],"rb")) == NULL)
- Abort ("Cannot open %s\n", argv[1]);
-
- fprintf (outFile,
- "/* data statements for file %s at %.24s */\n"
- "/* Generated by BIN2C, G.Vanem 1995 */\n",
- argv[1], ctime(&now));
-
- i = 0;
- while ((ch = fgetc(inFile)) != EOF)
- {
- if (i++ % 12 == 0)
- fputs ("\n ", outFile);
- fprintf (outFile, "0x%02X,", ch);
- }
- fputc ('\n', outFile);
- fclose (inFile);
- return (0);
-}
diff --git a/contrib/libpcap/msdos/common.dj b/contrib/libpcap/msdos/common.dj
deleted file mode 100644
index 3f64d14..0000000
--- a/contrib/libpcap/msdos/common.dj
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# Common defines for libpcap and 16/32-bit network drivers (djgpp)
-#
-# @(#) $Header: /tcpdump/master/libpcap/msdos/common.dj,v 1.2 2004-12-19 19:36:33 guy Exp $ (LBL)
-
-.SUFFIXES: .exe .wlm .dxe .l .y
-.PHONY: check_gcclib
-
-default: check_gcclib all
-
-GCCLIB = /djgpp/lib/gcc-lib/djgpp/3.31
-MAKEFILE = Makefile.dj
-
-#
-# DLX 2.91+ lib. Change path to suite.
-# Not used anymore. Uses DXE3 now.
-#
-# DLX_LIB = $(DJDIR)/contrib/dlx.291/libdlx.a
-# DLX_LINK = $(DJDIR)/bin/dlxgen.exe
-
-WATT32_ROOT = $(subst \,/,$(WATT_ROOT))
-
-
-ifeq ($(wildcard $(GCCLIB)/libgcc.a),)
-check_gcclib:
- @echo libgcc.a not found. Set \"$(GCCLIB)\" to \"/djgpp/lib/gcc-lib/djgpp/3.X\"
-endif
-
-
-#
-# Include 32-bit driver support
-#
-USE_32BIT_DRIVERS = 0
-
-#
-# Use loadable driver modules instead of statically linking
-# all drivers.
-#
-USE_32BIT_MODULES = 0
-
-#
-# Put interrupt sensitive code/data in locked sections
-# Do `make clean' in all affected directories after changing this.
-#
-USE_SECTION_LOCKING = 0
-
-#
-# Set to 1 to use exception handler lib (only for me)
-#
-USE_EXCEPT = 0
-
-CC = gcc.exe
-LD = ld.exe
-ASM = nasm.exe -fbin -dDEBUG
-YACC = bison.exe
-LEX = flex.exe
-
-CFLAGS = -g -gcoff -O2 -Wall -I. -I$(WATT32_ROOT)/inc
-
-ifeq ($(USE_EXCEPT),1)
- CFLAGS += -DUSE_EXCEPT
- EXC_LIB = d:/prog/mw/except/lib/libexc.a
-endif
-
-ifeq ($(USE_SECTION_LOCKING),1)
- CFLAGS += -DUSE_SECTION_LOCKING
-endif
-
-ifeq ($(USE_32BIT_DRIVERS),1)
- CFLAGS += -DUSE_32BIT_DRIVERS
-endif
-
-%.o: %.c
- $(CC) -c $(CFLAGS) $<
- @echo
-
-%.o: %.s
- $(CC) -c $(CFLAGS) -x assembler-with-cpp -o $@ $<
- @echo
-
diff --git a/contrib/libpcap/msdos/makefile b/contrib/libpcap/msdos/makefile
deleted file mode 100644
index f74684f..0000000
--- a/contrib/libpcap/msdos/makefile
+++ /dev/null
@@ -1,184 +0,0 @@
-#
-# Makefile for dos-libpcap. NB. This makefile requires a Borland
-# compatible make tool.
-#
-# Targets:
-# Borland C 4.0+ (DOS large model)
-# Metaware HighC 3.3+ (PharLap 386|DosX)
-#
-
-.AUTODEPEND
-.SWAP
-
-!if "$(WATT_ROOT)" == ""
-!error Environment variable "WATT_ROOT" not set.
-!endif
-
-WATT_INC = $(WATT_ROOT)\inc
-
-DEFS = -DMSDOS -DDEBUG -DNDIS_DEBUG -D_U_= -Dinline= \
- -DHAVE_STRERROR -DHAVE_LIMITS_H
-
-ASM = tasm.exe -t -l -mx -m2 -DDEBUG
-
-SOURCE = grammar.c scanner.c bpf_filt.c bpf_imag.c bpf_dump.c \
- etherent.c gencode.c nametoad.c pcap-dos.c optimize.c \
- savefile.c pcap.c inet.c msdos\ndis2.c msdos\pktdrvr.c \
- missing\snprintf.c
-
-BORLAND_OBJ = $(SOURCE:.c=.obj) msdos\pkt_rx0.obj msdos\ndis_0.obj
-
-HIGHC_OBJ = $(SOURCE:.c=.o32) msdos\pkt_rx0.o32
-
-all:
- @echo Usage: make pcap_bc.lib or pcap_hc.lib
-
-
-pcap_bc.lib: bcc.arg $(BORLAND_OBJ) pcap_bc
-
-
-pcap_hc.lib: hc386.arg $(HIGHC_OBJ)
- 386lib $< @&&|
- -nowarn -nobackup -twocase -replace $(HIGHC_OBJ)
-|
-
-pcap_bc: $(BORLAND_OBJ)
- @tlib pcap_bc.lib /C @&&|
- -+$(**:.obj=-+)
-|
-
-.c.obj:
- bcc.exe @bcc.arg -o$*.obj $*.c
-
-.c.o32:
- hc386.exe @hc386.arg -o $*.o32 $*.c
-
-.asm.obj:
- $(ASM) $*.asm, $*.obj
-
-.asm.o32:
- $(ASM) -DDOSX=1 $*.asm, $*.o32
-
-scanner.c: scanner.l
- flex -Ppcap_ -7 -oscanner.c scanner.l
-
-grammar.c tokdefs.h: grammar.y
- bison --name-prefix=pcap_ --yacc --defines grammar.y
- - @del grammar.c
- - @del tokdefs.h
- ren y_tab.c grammar.c
- ren y_tab.h tokdefs.h
-
-bcc.arg: msdos\Makefile
- @copy &&|
- $(DEFS) -ml -c -v -3 -O2 -po -RT- -w-
- -I$(WATT_INC) -I. -I.\msdos\pm_drvr -H=$(TEMP)\bcc.sym
-| $<
-
-hc386.arg: msdos\Makefile
- @copy &&|
- # -DUSE_32BIT_DRIVERS
- $(DEFS) -DDOSX=1 -w3 -c -g -O5
- -I$(WATT_INC) -I. -I.\msdos\pm_drvr
- -Hsuffix=.o32
- -Hnocopyr
- -Hpragma=Offwarn(491,553,572)
- -Hon=Recognize_library # make memcpy/strlen etc. inline
- -Hoff=Behaved # turn off some optimiser warnings
-| $<
-
-clean:
- @del *.obj
- @del *.o32
- @del *.lst
- @del *.map
- @del bcc.arg
- @del hc386.arg
- @del grammar.c
- @del tokdefs.h
- @del scanner.c
- @echo Cleaned
-
-#
-# dependencies
-#
-pkt_rx0.obj: msdos\pkt_rx0.asm
-
-bpf_filt.obj: bpf_filt.c pcap-int.h pcap.h pcap-bpf.h gnuc.h
-
-bpf_imag.obj: bpf_imag.c pcap-int.h pcap.h pcap-bpf.h
-
-bpf_dump.obj: bpf_dump.c pcap.h pcap-bpf.h
-
-etherent.obj: etherent.c pcap-int.h pcap.h pcap-bpf.h pcap-namedb.h
-
-optimize.obj: optimize.c pcap-int.h pcap.h pcap-bpf.h gencode.h
-
-savefile.obj: savefile.c pcap-int.h pcap.h pcap-bpf.h
-
-pcap.obj: pcap.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h
-
-inet.obj: inet.c pcap-int.h pcap.h pcap-bpf.h
-
-grammar.obj: grammar.c pcap-int.h pcap.h pcap-bpf.h gencode.h \
- pf.h pcap-namedb.h
-
-scanner.obj: scanner.c pcap-int.h pcap.h pcap-bpf.h gencode.h \
- pcap-namedb.h tokdefs.h
-
-gencode.obj: gencode.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h \
- ethertype.h nlpid.h llc.h gencode.h atmuni31.h sunatmpos.h ppp.h sll.h \
- arcnet.h pf.h pcap-namedb.h
-
-nametoad.obj: nametoad.c pcap-int.h pcap.h pcap-bpf.h gencode.h \
- pcap-namedb.h ethertype.h
-
-pcap-dos.obj: pcap-dos.c pcap.h pcap-bpf.h pcap-dos.h pcap-int.h \
- msdos\pktdrvr.h
-
-pktdrvr.obj: msdos\pktdrvr.c gnuc.h pcap-dos.h pcap-int.h \
- pcap.h pcap-bpf.h msdos\pktdrvr.h msdos\pkt_stub.inc
-
-ndis2.obj: msdos\ndis2.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h \
- msdos\ndis2.h
-
-pkt_rx0.o32: msdos\pkt_rx0.asm
-
-bpf_filt.o32: bpf_filt.c pcap-int.h pcap.h pcap-bpf.h gnuc.h
-
-bpf_imag.o32: bpf_imag.c pcap-int.h pcap.h pcap-bpf.h
-
-bpf_dump.o32: bpf_dump.c pcap.h pcap-bpf.h
-
-etherent.o32: etherent.c pcap-int.h pcap.h pcap-bpf.h pcap-namedb.h
-
-optimize.o32: optimize.c pcap-int.h pcap.h pcap-bpf.h gencode.h
-
-savefile.o32: savefile.c pcap-int.h pcap.h pcap-bpf.h
-
-pcap.o32: pcap.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h
-
-inet.o32: inet.c pcap-int.h pcap.h pcap-bpf.h
-
-grammar.o32: grammar.c pcap-int.h pcap.h pcap-bpf.h gencode.h \
- pf.h pcap-namedb.h
-
-scanner.o32: scanner.c pcap-int.h pcap.h pcap-bpf.h gencode.h \
- pcap-namedb.h tokdefs.h
-
-gencode.o32: gencode.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h \
- ethertype.h nlpid.h llc.h gencode.h atmuni31.h sunatmpos.h ppp.h sll.h \
- arcnet.h pf.h pcap-namedb.h
-
-nametoad.o32: nametoad.c pcap-int.h pcap.h pcap-bpf.h gencode.h \
- pcap-namedb.h ethertype.h
-
-pcap-dos.o32: pcap-dos.c pcap.h pcap-bpf.h pcap-dos.h pcap-int.h \
- msdos\pktdrvr.h
-
-pktdrvr.o32: msdos\pktdrvr.c gnuc.h pcap-dos.h pcap-int.h \
- pcap.h pcap-bpf.h msdos\pktdrvr.h msdos\pkt_stub.inc
-
-ndis2.o32: msdos\ndis2.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h \
- msdos\ndis2.h
-
diff --git a/contrib/libpcap/msdos/makefile.dj b/contrib/libpcap/msdos/makefile.dj
deleted file mode 100644
index 7ce58b4..0000000
--- a/contrib/libpcap/msdos/makefile.dj
+++ /dev/null
@@ -1,152 +0,0 @@
-#
-# GNU Makefile for DOS-libpcap. djgpp version.
-#
-# Use this makefile from the libpcap root directory.
-# E.g. like this:
-#
-# c:\net\pcap> make -f msdos/makefile.dj
-#
-# @(#) $Header: /tcpdump/master/libpcap/msdos/makefile.dj,v 1.2 2004-12-19 19:41:06 guy Exp $ (LBL)
-
-VPATH = missing msdos
-
-PREREQUISITES = scanner.c grammar.c tokdefs.h version.h msdos/pkt_stub.inc
-
-include msdos/common.dj
-
-DRIVER_DIR = ./msdos/pm_drvr
-
-CFLAGS += -DDEBUG -DNDIS_DEBUG -DHAVE_LIMITS_H -DHAVE_STRERROR \
- -D_U_='__attribute__((unused))' -DHAVE_VERSION_H
-
-# CFLAGS += -Dyylval=pcap_lval -DBDEBUG -DNDEBUG
-
-SOURCES = grammar.c scanner.c bpf_filt.c bpf_imag.c bpf_dump.c \
- etherent.c gencode.c nametoad.c pcap-dos.c optimize.c \
- savefile.c pcap.c inet.c msdos\pktdrvr.c msdos/ndis2.c \
- missing/snprintf.c
-
-OBJECTS = $(notdir $(SOURCES:.c=.o))
-TEMPBIN = tmp.bin
-
-ifeq ($(USE_32BIT_DRIVERS),1)
- PM_OBJECTS = $(addprefix $(DRIVER_DIR)/, \
- printk.o pci.o pci-scan.o bios32.o dma.o irq.o intwrap.o \
- lock.o kmalloc.o quirks.o timer.o net_init.o)
- #
- # Static link of drivers
- #
- ifeq ($(USE_32BIT_MODULES),0)
- PM_OBJECTS += $(addprefix $(DRIVER_DIR)/, \
- accton.o 8390.o 3c503.o 3c509.o 3c59x.o 3c515.o \
- 3c575_cb.o 3c90x.o ne.o wd.o cs89x0.o rtl8139.o)
- endif
-endif
-
-all: libpcap.a
-
-ifeq ($(USE_32BIT_DRIVERS),1)
-$(PM_OBJECTS):
- $(MAKE) -f Makefile.dj -C $(DRIVER_DIR) $(notdir $@)
-endif
-
-libpcap.a: version.h $(OBJECTS) $(PM_OBJECTS)
- rm -f $@
- ar rs $@ $^
-
-msdos/pkt_stub.inc: msdos/bin2c.exe msdos/pkt_rx1.S
- $(ASM) -o $(TEMPBIN) -lmsdos/pkt_rx1.lst msdos/pkt_rx1.S
- ./msdos/bin2c $(TEMPBIN) > $@
- rm -f $(TEMPBIN)
-
-grammar.c tokdefs.h: grammar.y
- rm -f grammar.c tokdefs.h
- $(YACC) --name-prefix=pcap_ --yacc --defines grammar.y
- mv -f y_tab.c grammar.c
- mv -f y_tab.h tokdefs.h
-
-version.h: ./VERSION
- @echo '/* Generated from VERSION. Do not edit */' > $@
- sed -e 's/.*/static char pcap_version_string[] = "libpcap (&)";/' ./VERSION >> $@
-
-scanner.c: scanner.l
- $(LEX) -Ppcap_ -7 -t $^ > $@
- @echo
-
-msdos/bin2c.exe: msdos/bin2c.c
- $(CC) $*.c -o $*.exe
-
-clean:
- $(MAKE) -f Makefile.dj -C $(DRIVER_DIR) clean
- $(MAKE) -f Makefile.dj -C libcpcap clean
- rm -f $(OBJECTS) msdos/pkt_rx1.lst Makefile.bak $(PREREQUISITES)
-
-vclean: clean
- rm -f libpcap.a msdos/bin2c.exe
-
-#
-# Generated dependencies; Due to some hacks in gcc 2.95 and djgpp 2.03
-# we must prevent "$(DJDIR)/bin/../include/sys/version.h" from beeing
-# included in dependency output (or else this makefile cannot be used on
-# another machine). We therefore use a special 'specs' file during
-# pre-processing.
-#
-MM_SPECS = specs.tmp
-MAKEFILE = msdos/Makefile.dj
-
-depend: $(PREREQUISITES)
- @echo Generating dependencies..
- @cp $(MAKEFILE) Makefile.bak
- @echo "*cpp: %(cpp_cpu) %{posix:-D_POSIX_SOURCE} -remap" > $(MM_SPECS)
- sed -e "/^# DO NOT DELETE THIS LINE/,$$d" < Makefile.bak > $(MAKEFILE)
- echo "# DO NOT DELETE THIS LINE" >> $(MAKEFILE)
- $(CC) -MM -specs=$(MM_SPECS) $(CFLAGS) $(SOURCES) >> $(MAKEFILE)
- rm -f $(MM_SPECS)
-
-#
-# Manually generated dependencies
-#
-msdos/pktdrvr.c: msdos/pkt_stub.inc
-scanner.c: scanner.l
-grammar.c tokdefs.h: grammar.y
-grammar.h: grammar.y
-scanner.l: pcap-int.h pcap-namedb.h gencode.h grammar.h gnuc.h
-grammar.y: pcap-int.h gencode.h pcap-namedb.h gnuc.h
-
-#
-# Automatically generated dependencies
-#
-# DO NOT DELETE THIS LINE
-grammar.o: grammar.c pcap-int.h pcap.h pcap-bpf.h gencode.h pf.h \
- pcap-namedb.h
-scanner.o: scanner.c pcap-int.h pcap.h pcap-bpf.h gencode.h pcap-namedb.h \
- tokdefs.h
-bpf_filt.o: bpf_filt.c pcap-int.h pcap.h pcap-bpf.h gnuc.h
-bpf_imag.o: bpf_imag.c pcap-int.h pcap.h pcap-bpf.h
-bpf_dump.o: bpf_dump.c pcap.h pcap-bpf.h
-etherent.o: etherent.c pcap-int.h pcap.h pcap-bpf.h pcap-namedb.h
-gencode.o: gencode.c pcap-dos.h msdos/pm_drvr/lock.h pcap-int.h pcap.h \
- pcap-bpf.h ethertype.h nlpid.h llc.h gencode.h atmuni31.h sunatmpos.h \
- ppp.h sll.h arcnet.h pf.h pcap-namedb.h
-nametoad.o: nametoad.c pcap-int.h pcap.h pcap-bpf.h gencode.h \
- pcap-namedb.h ethertype.h
-pcap-dos.o: pcap-dos.c msdos/pm_drvr/pmdrvr.h msdos/pm_drvr/iface.h \
- msdos/pm_drvr/lock.h msdos/pm_drvr/ioport.h pcap-dos.h pcap-int.h \
- pcap.h pcap-bpf.h msdos/pm_drvr/kmalloc.h msdos/pm_drvr/bitops.h \
- msdos/pm_drvr/timer.h msdos/pm_drvr/dma.h msdos/pm_drvr/irq.h \
- msdos/pm_drvr/printk.h msdos/pm_drvr/pci.h msdos/pm_drvr/bios32.h \
- msdos/pm_drvr/module.h msdos/pm_drvr/3c501.h msdos/pm_drvr/3c503.h \
- msdos/pm_drvr/3c509.h msdos/pm_drvr/3c59x.h msdos/pm_drvr/3c515.h \
- msdos/pm_drvr/3c90x.h msdos/pm_drvr/3c575_cb.h msdos/pm_drvr/ne.h \
- msdos/pm_drvr/wd.h msdos/pm_drvr/accton.h msdos/pm_drvr/cs89x0.h \
- msdos/pm_drvr/rtl8139.h msdos/pm_drvr/ne2k-pci.h msdos/pktdrvr.h
-optimize.o: optimize.c pcap-int.h pcap.h pcap-bpf.h gencode.h
-savefile.o: savefile.c pcap-int.h pcap.h pcap-bpf.h
-pcap.o: pcap.c pcap-dos.h msdos/pm_drvr/lock.h pcap-int.h pcap.h \
- pcap-bpf.h
-inet.o: inet.c pcap-int.h pcap.h pcap-bpf.h
-pktdrvr.o: msdos/pktdrvr.c gnuc.h pcap-dos.h msdos/pm_drvr/lock.h \
- pcap-int.h pcap.h pcap-bpf.h msdos/pktdrvr.h msdos/pkt_stub.inc
-ndis2.o: msdos/ndis2.c pcap-dos.h msdos/pm_drvr/lock.h pcap-int.h pcap.h \
- pcap-bpf.h msdos/ndis2.h
-snprintf.o: missing/snprintf.c pcap-int.h pcap.h pcap-bpf.h
diff --git a/contrib/libpcap/msdos/makefile.wc b/contrib/libpcap/msdos/makefile.wc
deleted file mode 100644
index e7edde6..0000000
--- a/contrib/libpcap/msdos/makefile.wc
+++ /dev/null
@@ -1,131 +0,0 @@
-#
-# Watcom Makefile for dos-libpcap.
-#
-# Specify MODEL = `3r' or `3s'
-# Specify TARGET = `pharlap' or `dos4g'
-#
-# Use this makefile from the libpcap root directory.
-# E.g. like this:
-#
-# c:\net\pcap> wmake -f msdos\makefile.wc
-#
-
-MODEL = 3s
-TARGET = dos4g
-
-OBJDIR = msdos\$(TARGET).w$(MODEL)
-LIB = $(OBJDIR)\pcap.lib
-
-.EXTENSIONS: .l .y
-
-DEFS = -dDEBUG -dNDIS_DEBUG -d_U_= -dHAVE_LIMITS_H -dHAVE_STRERROR &
- -dHAVE_SNPRINTF -dHAVE_VSNPRINTF
-
-CC = wcc386.exe
-ASM = wasm.exe -$(MODEL) $(DEFS) -dDOSX -dDOS4GW -zq -bt=dos -fr=nul -d3 -s
-
-OBJS = $(OBJDIR)\grammar.obj $(OBJDIR)\scanner.obj $(OBJDIR)\pcap.obj &
- $(OBJDIR)\bpf_filt.obj $(OBJDIR)\bpf_imag.obj $(OBJDIR)\bpf_dump.obj &
- $(OBJDIR)\etherent.obj $(OBJDIR)\gencode.obj $(OBJDIR)\nametoad.obj &
- $(OBJDIR)\pcap-dos.obj $(OBJDIR)\pktdrvr.obj $(OBJDIR)\optimize.obj &
- $(OBJDIR)\savefile.obj $(OBJDIR)\inet.obj $(OBJDIR)\ndis2.obj
-
-CFLAGS = $(DEFS) $(YYDEFS) -I. -I$(%watt_root)\inc -I.\msdos\pm_drvr &
- -$(MODEL) -mf -zff -zgf -zq -bt=dos -fr=nul -w6 -fpi &
- -oilrtf -zm
-
-TEMPBIN = tmp.bin
-
-all: $(OBJDIR) $(OBJDIR)\pcap.lib
-
-$(OBJDIR):
- - mkdir $(OBJDIR)
-
-$(OBJDIR)\pcap.lib: $(OBJS) wlib.arg
- wlib -q -b -c $(OBJDIR)\pcap.lib @wlib.arg
-
-wlib.arg: msdos\makefile.wc
- %create $^@
- for %f in ($(OBJS)) do %append $^@ +- %f
-
-$(OBJDIR)\pktdrvr.obj: msdos\pkt_stub.inc msdos\pktdrvr.c gnuc.h &
- pcap-dos.h pcap-int.h pcap.h msdos\pktdrvr.h
- *$(CC) $(CFLAGS) msdos\pktdrvr.c -fo=$@
-
-$(OBJDIR)\ndis2.obj: msdos\ndis2.c
- *$(CC) $(CFLAGS) msdos\ndis2.c -fo=$@
-
-.ERASE
-.c{$(OBJDIR)}.obj:
- *$(CC) $(CFLAGS) $[@ -fo=$@
-
-grammar.c tokdefs.h: grammar.y
- bison --name-prefix=pcap_ --yacc --defines $[@
- - @del grammar.c
- - @del tokdefs.h
- ren y_tab.c grammar.c
- ren y_tab.h tokdefs.h
-
-scanner.c: scanner.l
- flex -Ppcap_ -7 -o$@ $[@
-
-msdos\pkt_stub.inc: bin2c.exe msdos\pkt_rx1.S
- nasm -fbin -dDEBUG -o $(TEMPBIN) -lmsdos\pkt_rx1.lst msdos\pkt_rx1.S
- bin2c.exe $(TEMPBIN) > $@
- @del $(TEMPBIN)
-
-bin2c.exe: msdos\bin2c.c
- wcl $[@
-
-clean realclean vclean: .SYMBOLIC
- for %f in (dos4g.w3r dos4g.w3s pharlap.w3r pharlap.w3s) do &
- @del %f\*.obj
- @del grammar.c
- @del tokdefs.h
- @del scanner.c
- @del bin2c.exe
- @del bin2c.obj
- @del msdos\pkt_stub.inc
- @echo Cleaned
-
-#
-# dependencies
-#
-$(OBJDIR)\bpf_filt.obj: bpf_filt.c pcap-int.h pcap.h pcap-bpf.h gnuc.h
-
-$(OBJDIR)\bpf_imag.obj: bpf_imag.c pcap-int.h pcap.h pcap-bpf.h
-
-$(OBJDIR)\bpf_dump.obj: bpf_dump.c pcap.h pcap-bpf.h
-
-$(OBJDIR)\etherent.obj: etherent.c pcap-int.h pcap.h pcap-bpf.h pcap-nam.h
-
-$(OBJDIR)\optimize.obj: optimize.c pcap-int.h pcap.h pcap-bpf.h gencode.h
-
-$(OBJDIR)\savefile.obj: savefile.c pcap-int.h pcap.h pcap-bpf.h
-
-$(OBJDIR)\pcap.obj: pcap.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h
-
-$(OBJDIR)\inet.obj: inet.c pcap-int.h pcap.h pcap-bpf.h
-
-$(OBJDIR)\grammar.obj: grammar.c pcap-int.h pcap.h pcap-bpf.h gencode.h &
- pf.h pcap-nam.h
-
-$(OBJDIR)\scanner.obj: scanner.c pcap-int.h pcap.h pcap-bpf.h gencode.h &
- pcap-nam.h tokdefs.h
-
-$(OBJDIR)\gencode.obj: gencode.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h &
- ethertyp.h nlpid.h llc.h gencode.h atmuni31.h sunatmpo.h ppp.h sll.h &
- arcnet.h pf.h pcap-nam.h
-
-$(OBJDIR)\nametoad.obj: nametoad.c pcap-int.h pcap.h pcap-bpf.h gencode.h &
- pcap-nam.h ethertyp.h
-
-$(OBJDIR)\pcap-dos.obj: pcap-dos.c pcap.h pcap-bpf.h pcap-dos.h pcap-int.h &
- msdos\pktdrvr.h
-
-$(OBJDIR)\pktdrvr.obj: msdos\pktdrvr.c gnuc.h pcap-dos.h pcap-int.h &
- pcap.h pcap-bpf.h msdos\pktdrvr.h msdos\pkt_stub.inc
-
-$(OBJDIR)\ndis2.obj: msdos\ndis2.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h &
- msdos\ndis2.h
-
diff --git a/contrib/libpcap/msdos/ndis2.c b/contrib/libpcap/msdos/ndis2.c
deleted file mode 100644
index 8cebe6e..0000000
--- a/contrib/libpcap/msdos/ndis2.c
+++ /dev/null
@@ -1,860 +0,0 @@
-/*
- * Copyright (c) 1993,1994
- * Texas A&M University. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Texas A&M University
- * 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 UNIVERSITY 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 UNIVERSITY 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.
- *
- * Developers:
- * David K. Hess, Douglas Lee Schales, David R. Safford
- *
- * Heavily modified for Metaware HighC + GNU C 2.8+
- * Gisle Vanem 1998
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <dos.h>
-#include <io.h>
-#include <fcntl.h>
-#include <malloc.h>
-#include <string.h>
-
-#include "pcap-dos.h"
-#include "pcap-int.h"
-#include "msdos/ndis2.h"
-
-#if defined(USE_NDIS2)
-
-/*
- * Packet buffer handling
- */
-extern int FreePktBuf (PktBuf *buf);
-extern int EnquePktBuf (PktBuf *buf);
-extern PktBuf* AllocPktBuf (void);
-
-/*
- * Various defines
- */
-#define MAX_NUM_DEBUG_STRINGS 90
-#define DEBUG_STRING_LENGTH 80
-#define STACK_POOL_SIZE 6
-#define STACK_SIZE 256
-
-#define MEDIA_FDDI 1
-#define MEDIA_ETHERNET 2
-#define MEDIA_TOKEN 3
-
-static int startDebug = 0;
-static int stopDebug = 0;
-
-static DWORD droppedPackets = 0L;
-static WORD frameSize = 0;
-static WORD headerSize = 0;
-static int mediaType = 0;
-static char *lastErr = NULL;
-
-static BYTE debugStrings [MAX_NUM_DEBUG_STRINGS][DEBUG_STRING_LENGTH];
-static BYTE *freeStacks [STACK_POOL_SIZE];
-static int freeStackPtr = STACK_POOL_SIZE - 1;
-
-static ProtMan protManEntry = NULL;
-static WORD protManDS = 0;
-static volatile int xmitPending;
-
-static struct _PktBuf *txBufPending;
-static struct _CardHandle *handle;
-static struct _CommonChars common;
-static struct _ProtocolChars protChars;
-static struct _ProtDispatch lowerTable;
-
-static struct _FailingModules failingModules;
-static struct _BindingsList bindings;
-
-static struct {
- WORD err_num;
- char *err_text;
- } ndis_errlist[] = {
-
- { ERR_SUCCESS,
- "The function completed successfully.\n" },
-
- { ERR_WAIT_FOR_RELEASE,
- "The ReceiveChain completed successfully but the protocol has\n"
- "retained control of the buffer.\n" },
-
- { ERR_REQUEST_QUEUED,
- "The current request has been queued.\n" },
-
- { ERR_FRAME_NOT_RECOGNIZED,
- "Frame not recognized.\n" },
-
- { ERR_FRAME_REJECTED,
- "Frame was discarded.\n" },
-
- { ERR_FORWARD_FRAME,
- "Protocol wishes to forward frame to another protocol.\n" },
-
- { ERR_OUT_OF_RESOURCE,
- "Out of resource.\n" },
-
- { ERR_INVALID_PARAMETER,
- "Invalid parameter.\n" },
-
- { ERR_INVALID_FUNCTION,
- "Invalid function.\n" },
-
- { ERR_NOT_SUPPORTED,
- "Not supported.\n" },
-
- { ERR_HARDWARE_ERROR,
- "Hardware error.\n" },
-
- { ERR_TRANSMIT_ERROR,
- "The packet was not transmitted due to an error.\n" },
-
- { ERR_NO_SUCH_DESTINATION,
- "Token ring packet was not recognized when transmitted.\n" },
-
- { ERR_BUFFER_TOO_SMALL,
- "Provided buffer was too small.\n" },
-
- { ERR_ALREADY_STARTED,
- "Network drivers already started.\n" },
-
- { ERR_INCOMPLETE_BINDING,
- "Protocol driver could not complete its bindings.\n" },
-
- { ERR_DRIVER_NOT_INITIALIZED,
- "MAC did not initialize properly.\n" },
-
- { ERR_HARDWARE_NOT_FOUND,
- "Hardware not found.\n" },
-
- { ERR_HARDWARE_FAILURE,
- "Hardware failure.\n" },
-
- { ERR_CONFIGURATION_FAILURE,
- "Configuration failure.\n" },
-
- { ERR_INTERRUPT_CONFLICT,
- "Interrupt conflict.\n" },
-
- { ERR_INCOMPATIBLE_MAC,
- "The MAC is not compatible with the protocol.\n" },
-
- { ERR_INITIALIZATION_FAILED,
- "Initialization failed.\n" },
-
- { ERR_NO_BINDING,
- "Binding did not occur.\n" },
-
- { ERR_NETWORK_MAY_NOT_BE_CONNECTED,
- "The network may not be connected to the adapter.\n" },
-
- { ERR_INCOMPATIBLE_OS_VERSION,
- "The version of the operating system is incompatible with the protocol.\n" },
-
- { ERR_ALREADY_REGISTERED,
- "The protocol is already registered.\n" },
-
- { ERR_PATH_NOT_FOUND,
- "PROTMAN.EXE could not be found.\n" },
-
- { ERR_INSUFFICIENT_MEMORY,
- "Insufficient memory.\n" },
-
- { ERR_INFO_NOT_FOUND,
- "Protocol Mananger info structure is lost or corrupted.\n" },
-
- { ERR_GENERAL_FAILURE,
- "General failure.\n" }
-};
-
-/*
- * Some handy macros
- */
-#define PERROR(str) printf("%s (%d): %s\n", __FILE__,__LINE__,str)
-#define DEBUG_RING() (debugStrings[stopDebug+1 == MAX_NUM_DEBUG_STRINGS ? \
- stopDebug = 0 : ++stopDebug])
-
-/*
- * needs rewrite for DOSX
- */
-#define MAC_DISPATCH(hnd) ((struct _MacUpperDispatch*)(hnd)->common->upperDispatchTable)
-#define MAC_STATUS(hnd) ((struct _MacStatusTable*) (hnd)->common->serviceStatus)
-#define MAC_CHAR(hnd) ((struct _MacChars*) (hnd)->common->serviceChars)
-
-#ifdef NDIS_DEBUG
- #define DEBUG0(str) printf (str)
- #define DEBUG1(fmt,a) printf (fmt,a)
- #define DEBUG2(fmt,a,b) printf (fmt,a,b)
- #define TRACE0(str) sprintf (DEBUG_RING(),str)
- #define TRACE1(fmt,a) sprintf (DEBUG_RING(),fmt,a)
-#else
- #define DEBUG0(str) ((void)0)
- #define DEBUG1(fmt,a) ((void)0)
- #define DEBUG2(fmt,a,b) ((void)0)
- #define TRACE0(str) ((void)0)
- #define TRACE1(fmt,a) ((void)0)
-#endif
-
-/*
- * This routine is called from both threads
- */
-void NdisFreeStack (BYTE *aStack)
-{
- GUARD();
-
- if (freeStackPtr == STACK_POOL_SIZE - 1)
- PERROR ("tried to free too many stacks");
-
- freeStacks[++freeStackPtr] = aStack;
-
- if (freeStackPtr == 0)
- TRACE0 ("freeStackPtr went positive\n");
-
- UNGUARD();
-}
-
-/*
- * This routine is called from callbacks to allocate local data
- */
-BYTE *NdisAllocStack (void)
-{
- BYTE *stack;
-
- GUARD();
-
- if (freeStackPtr < 0)
- {
- /* Ran out of stack buffers. Return NULL which will start
- * dropping packets
- */
- TRACE0 ("freeStackPtr went negative\n");
- stack = 0;
- }
- else
- stack = freeStacks[freeStackPtr--];
-
- UNGUARD();
- return (stack);
-}
-
-CALLBACK (NdisSystemRequest (DWORD param1, DWORD param2, WORD param3,
- WORD opcode, WORD targetDS))
-{
- static int bindEntry = 0;
- struct _CommonChars *macCommon;
- volatile WORD result;
-
- switch (opcode)
- {
- case REQ_INITIATE_BIND:
- macCommon = (struct _CommonChars*) param2;
- if (macCommon == NULL)
- {
- printf ("There is an NDIS misconfiguration.\n");
- result = ERR_GENERAL_FAILURE;
- break;
- }
- DEBUG2 ("module name %s\n"
- "module type %s\n",
- macCommon->moduleName,
- ((MacChars*) macCommon->serviceChars)->macName);
-
- /* Binding to the MAC */
- result = macCommon->systemRequest ((DWORD)&common, (DWORD)&macCommon,
- 0, REQ_BIND,
- macCommon->moduleDS);
-
- if (!strcmp(bindings.moduleName[bindEntry], handle->moduleName))
- handle->common = macCommon;
- else PERROR ("unknown module");
- ++bindEntry;
- break;
-
- case REQ_INITIATE_UNBIND:
- macCommon = (struct _CommonChars*) param2;
- result = macCommon->systemRequest ((DWORD)&common, 0,
- 0, REQ_UNBIND,
- macCommon->moduleDS);
- break;
-
- default:
- result = ERR_GENERAL_FAILURE;
- break;
- }
- ARGSUSED (param1);
- ARGSUSED (param3);
- ARGSUSED (targetDS);
- return (result);
-}
-
-CALLBACK (NdisRequestConfirm (WORD protId, WORD macId, WORD reqHandle,
- WORD status, WORD request, WORD protDS))
-{
- ARGSUSED (protId); ARGSUSED (macId);
- ARGSUSED (reqHandle); ARGSUSED (status);
- ARGSUSED (request); ARGSUSED (protDS);
- return (ERR_SUCCESS);
-}
-
-CALLBACK (NdisTransmitConfirm (WORD protId, WORD macId, WORD reqHandle,
- WORD status, WORD protDS))
-{
- xmitPending--;
- FreePktBuf (txBufPending); /* Add passed ECB back to the free list */
-
- ARGSUSED (reqHandle);
- ARGSUSED (status);
- ARGSUSED (protDS);
- return (ERR_SUCCESS);
-}
-
-
-/*
- * The primary function for receiving packets
- */
-CALLBACK (NdisReceiveLookahead (WORD macId, WORD frameSize,
- WORD bytesAvail, BYTE *buffer,
- BYTE *indicate, WORD protDS))
-{
- int result;
- PktBuf *pktBuf;
- WORD bytesCopied;
- struct _TDBufDescr tDBufDescr;
-
-#if 0
- TRACE1 ("lookahead length = %d, ", bytesAvail);
- TRACE1 ("ecb = %08lX, ", *ecb);
- TRACE1 ("count = %08lX\n", count);
- TRACE1 ("offset = %08lX, ", offset);
- TRACE1 ("timesAllowed = %d, ", timesAllowed);
- TRACE1 ("packet size = %d\n", look->dataLookAheadLen);
-#endif
-
- /* Allocate a buffer for the packet
- */
- if ((pktBuf = AllocPktBuf()) == NULL)
- {
- droppedPackets++;
- return (ERR_FRAME_REJECTED);
- }
-
- /*
- * Now kludge things. Note we will have to undo this later. This will
- * make the packet contiguous after the MLID has done the requested copy.
- */
-
- tDBufDescr.tDDataCount = 1;
- tDBufDescr.tDBufDescrRec[0].tDPtrType = NDIS_PTR_PHYSICAL;
- tDBufDescr.tDBufDescrRec[0].tDDataPtr = pktBuf->buffer;
- tDBufDescr.tDBufDescrRec[0].tDDataLen = pktBuf->length;
- tDBufDescr.tDBufDescrRec[0].dummy = 0;
-
- result = MAC_DISPATCH(handle)->transferData (&bytesCopied, 0, &tDBufDescr,
- handle->common->moduleDS);
- pktBuf->packetLength = bytesCopied;
-
- if (result == ERR_SUCCESS)
- EnquePktBuf(pktBuf);
- else FreePktBuf (pktBuf);
-
- ARGSUSED (frameSize);
- ARGSUSED (bytesAvail);
- ARGSUSED (indicate);
- ARGSUSED (protDS);
-
- return (ERR_SUCCESS);
-}
-
-CALLBACK (NdisIndicationComplete (WORD macId, WORD protDS))
-{
- ARGSUSED (macId);
- ARGSUSED (protDS);
-
- /* We don't give a hoot about these. Just return
- */
- return (ERR_SUCCESS);
-}
-
-/*
- * This is the OTHER way we may receive packets
- */
-CALLBACK (NdisReceiveChain (WORD macId, WORD frameSize, WORD reqHandle,
- struct _RxBufDescr *rxBufDescr,
- BYTE *indicate, WORD protDS))
-{
- struct _PktBuf *pktBuf;
- int i;
-
- /*
- * For now we copy the entire packet over to a PktBuf structure. This may be
- * a performance hit but this routine probably isn't called very much, and
- * it is a lot of work to do it otherwise. Also if it is a filter protocol
- * packet we could end up sucking up MAC buffes.
- */
-
- if ((pktBuf = AllocPktBuf()) == NULL)
- {
- droppedPackets++;
- return (ERR_FRAME_REJECTED);
- }
- pktBuf->packetLength = 0;
-
- /* Copy the packet to the buffer
- */
- for (i = 0; i < rxBufDescr->rxDataCount; ++i)
- {
- struct _RxBufDescrRec *rxDescr = &rxBufDescr->rxBufDescrRec[i];
-
- memcpy (pktBuf->buffer + pktBuf->packetLength,
- rxDescr->rxDataPtr, rxDescr->rxDataLen);
- pktBuf->packetLength += rxDescr->rxDataLen;
- }
-
- EnquePktBuf (pktBuf);
-
- ARGSUSED (frameSize);
- ARGSUSED (reqHandle);
- ARGSUSED (indicate);
- ARGSUSED (protDS);
-
- /* This frees up the buffer for the MAC to use
- */
- return (ERR_SUCCESS);
-}
-
-CALLBACK (NdisStatusProc (WORD macId, WORD param1, BYTE *indicate,
- WORD opcode, WORD protDS))
-{
- switch (opcode)
- {
- case STATUS_RING_STATUS:
- break;
- case STATUS_ADAPTER_CHECK:
- break;
- case STATUS_START_RESET:
- break;
- case STATUS_INTERRUPT:
- break;
- case STATUS_END_RESET:
- break;
- default:
- break;
- }
- ARGSUSED (macId);
- ARGSUSED (param1);
- ARGSUSED (indicate);
- ARGSUSED (opcode);
- ARGSUSED (protDS);
-
- /* We don't need to do anything about this stuff yet
- */
- return (ERR_SUCCESS);
-}
-
-/*
- * Tell the NDIS driver to start the delivery of the packet
- */
-int NdisSendPacket (struct _PktBuf *pktBuf, int macId)
-{
- struct _TxBufDescr txBufDescr;
- int result;
-
- xmitPending++;
- txBufPending = pktBuf; /* we only have 1 pending Tx at a time */
-
- txBufDescr.txImmedLen = 0;
- txBufDescr.txImmedPtr = NULL;
- txBufDescr.txDataCount = 1;
- txBufDescr.txBufDescrRec[0].txPtrType = NDIS_PTR_PHYSICAL;
- txBufDescr.txBufDescrRec[0].dummy = 0;
- txBufDescr.txBufDescrRec[0].txDataLen = pktBuf->packetLength;
- txBufDescr.txBufDescrRec[0].txDataPtr = pktBuf->buffer;
-
- result = MAC_DISPATCH(handle)->transmitChain (common.moduleId,
- pktBuf->handle,
- &txBufDescr,
- handle->common->moduleDS);
- switch (result)
- {
- case ERR_OUT_OF_RESOURCE:
- /* Note that this should not happen but if it does there is not
- * much we can do about it
- */
- printf ("ERROR: transmit queue overflowed\n");
- return (0);
-
- case ERR_SUCCESS:
- /* Everything was hunky dory and synchronous. Free up the
- * packet buffer
- */
- xmitPending--;
- FreePktBuf (pktBuf);
- return (1);
-
- case ERR_REQUEST_QUEUED:
- /* Everything was hunky dory and asynchronous. Do nothing
- */
- return (1);
-
- default:
- printf ("Tx fail, code = %04X\n", result);
- return (0);
- }
-}
-
-
-
-static int ndis_nerr = sizeof(ndis_errlist) / sizeof(ndis_errlist[0]);
-
-static char *Ndis_strerror (WORD errorCode)
-{
- static char buf[30];
- int i;
-
- for (i = 0; i < ndis_nerr; i++)
- if (errorCode == ndis_errlist[i].err_num)
- return (ndis_errlist[i].err_text);
-
- sprintf (buf,"unknown error %d",errorCode);
- return (buf);
-}
-
-
-char *NdisLastError (void)
-{
- char *errStr = lastErr;
- lastErr = NULL;
- return (errStr);
-}
-
-int NdisOpen (void)
-{
- struct _ReqBlock reqBlock;
- int result;
- int ndisFd = open (NDIS_PATH, O_RDONLY);
-
- if (ndisFd < 0)
- {
- printf ("Could not open NDIS Protocol Manager device.\n");
- return (0);
- }
-
- memset (&reqBlock, 0, sizeof(ReqBlock));
-
- reqBlock.opcode = PM_GET_PROTOCOL_MANAGER_LINKAGE;
-
- result = NdisGetLinkage (ndisFd, (char*)&reqBlock, sizeof(ReqBlock));
- if (result != 0)
- {
- printf ("Could not get Protocol Manager linkage.\n");
- close (ndisFd);
- return (0);
- }
-
- close (ndisFd);
- protManEntry = (ProtMan) reqBlock.pointer1;
- protManDS = reqBlock.word1;
-
- DEBUG2 ("Entry Point = %04X:%04X\n", FP_SEG(protManEntry),FP_OFF(protManEntry));
- DEBUG1 ("ProtMan DS = %04X\n", protManDS);
- return (1);
-}
-
-
-int NdisRegisterAndBind (int promis)
-{
- struct _ReqBlock reqBlock;
- WORD result;
-
- memset (&common,0,sizeof(common));
-
- common.tableSize = sizeof (common);
-
- common.majorNdisVersion = 2;
- common.minorNdisVersion = 0;
- common.majorModuleVersion = 2;
- common.minorModuleVersion = 0;
-
- /* Indicates binding from below and dynamically loaded
- */
- common.moduleFlags = 0x00000006L;
-
- strcpy (common.moduleName, "PCAP");
-
- common.protocolLevelUpper = 0xFF;
- common.protocolLevelLower = 1;
- common.interfaceLower = 1;
-#ifdef __DJGPP__
- common.moduleDS = _dos_ds; /* the callback data segment */
-#else
- common.moduleDS = _DS;
-#endif
-
- common.systemRequest = (SystemRequest) systemRequestGlue;
- common.serviceChars = (BYTE*) &protChars;
- common.serviceStatus = NULL;
- common.upperDispatchTable = NULL;
- common.lowerDispatchTable = (BYTE*) &lowerTable;
-
- protChars.length = sizeof (protChars);
- protChars.name[0] = 0;
- protChars.type = 0;
-
- lowerTable.backPointer = &common;
- lowerTable.requestConfirm = requestConfirmGlue;
- lowerTable.transmitConfirm = transmitConfirmGlue;
- lowerTable.receiveLookahead = receiveLookaheadGlue;
- lowerTable.indicationComplete = indicationCompleteGlue;
- lowerTable.receiveChain = receiveChainGlue;
- lowerTable.status = statusGlue;
- lowerTable.flags = 3;
- if (promis)
- lowerTable.flags |= 4; /* promiscous mode (receive everything) */
-
- bindings.numBindings = 1;
- strcpy (bindings.moduleName[0], handle->moduleName);
-
- /* Register ourselves with NDIS
- */
- reqBlock.opcode = PM_REGISTER_MODULE;
- reqBlock.pointer1 = (BYTE FAR*) &common;
- reqBlock.pointer2 = (BYTE FAR*) &bindings;
-
- result = (*protManEntry) (&reqBlock, protManDS);
- if (result)
- {
- printf ("Protman registering failed: %s\n", Ndis_strerror(result));
- return (0);
- }
-
- /* Start the binding process
- */
- reqBlock.opcode = PM_BIND_AND_START;
- reqBlock.pointer1 = (BYTE FAR*) &failingModules;
-
- result = (*protManEntry) (&reqBlock, protManDS);
- if (result)
- {
- printf ("Start binding failed: %s\n", Ndis_strerror(result));
- return (0);
- }
- return (1);
-}
-
-static int CheckMacFeatures (CardHandle *card)
-{
- DWORD serviceFlags;
- BYTE _far *mediaString;
- BYTE _far *mac_addr;
-
- DEBUG2 ("checking card features\n"
- "common table address = %08lX, macId = %d\n",
- card->common, card->common->moduleId);
-
- serviceFlags = MAC_CHAR (handle)->serviceFlags;
-
- if ((serviceFlags & SF_PROMISCUOUS) == 0)
- {
- printf ("The MAC %s does not support promiscuous mode.\n",
- card->moduleName);
- return (0);
- }
-
- mediaString = MAC_CHAR (handle)->macName;
-
- DEBUG1 ("media type = %s\n",mediaString);
-
- /* Get the media type. And set the header size
- */
- if (!strncmp(mediaString,"802.3",5) ||
- !strncmp(mediaString,"DIX",3) ||
- !strncmp(mediaString,"DIX+802.3",9))
- headerSize = sizeof (EthernetIIHeader);
-
- else if (!strncmp(mediaString,"FDDI",4))
- headerSize = sizeof (FddiHeader) +
- sizeof (Ieee802Dot2SnapHeader);
- else
- {
- printf ("Unsupported MAC type: `%s'\n", mediaString);
- return (0);
- }
-
- frameSize = MAC_CHAR (handle)->maxFrameSize;
- mac_addr = MAC_CHAR (handle)->currentAddress;
-
- printf ("Hardware address: %02X:%02X:%02X:%02X:%02X:%02X\n",
- mac_addr[0], mac_addr[1], mac_addr[2],
- mac_addr[3], mac_addr[4], mac_addr[5]);
- return (1);
-}
-
-static int NdisStartMac (CardHandle *card)
-{
- WORD result;
-
- /* Set the lookahead length
- */
- result = MAC_DISPATCH(handle)->request (common.moduleId, 0,
- headerSize, 0,
- REQ_SET_LOOKAHEAD,
- card->common->moduleDS);
-
- /* We assume that if we got INVALID PARAMETER then either this
- * is not supported or will work anyway. NE2000 does this.
- */
- if (result != ERR_SUCCESS && result != ERR_INVALID_PARAMETER)
- {
- DEBUG1 ("Set lookahead failed: %s\n", Ndis_strerror(result));
- return (0);
- }
-
- /* Set the packet filter. Note that for some medias and drivers we
- * must specify all three flags or the card(s) will not operate correctly.
- */
- result = MAC_DISPATCH(handle)->request (common.moduleId, 0,
- /* all packets */ FILTER_PROMISCUOUS |
- /* packets to us */ FILTER_DIRECTED |
- /* broadcasts */ FILTER_BROADCAST,
- 0, REQ_SET_PACKET_FILTER,
- card->common->moduleDS);
- if (result != ERR_SUCCESS)
- {
- DEBUG1 ("Set packet filter failed: %s\n", Ndis_strerror(result));
- return (0);
- }
-
- /* If OPEN/CLOSE supported then open the adapter
- */
- if (MAC_CHAR(handle)->serviceFlags & SF_OPEN_CLOSE)
- {
- result = MAC_DISPATCH(handle)->request (common.moduleId, 0, 0, NULL,
- REQ_OPEN_ADAPTER,
- card->common->moduleDS);
- if (result != ERR_SUCCESS)
- {
- DEBUG1 ("Opening the MAC failed: %s\n", Ndis_strerror(result));
- return (0);
- }
- }
- return (1);
-}
-
-void NdisShutdown (void)
-{
- struct _ReqBlock reqBlock;
- int result, i;
-
- if (!handle)
- return;
-
- /* If the adapters support open and are open then close them
- */
- if ((MAC_CHAR(handle)->serviceFlags & SF_OPEN_CLOSE) &&
- (MAC_STATUS(handle)->macStatus & MAC_OPEN))
- {
- result = MAC_DISPATCH(handle)->request (common.moduleId, 0, 0, 0,
- REQ_CLOSE_ADAPTER,
- handle->common->moduleDS);
- if (result != ERR_SUCCESS)
- {
- printf ("Closing the MAC failed: %s\n", Ndis_strerror(result));
- return;
- }
- }
-
- /* Tell the Protocol Manager to unbind and stop
- */
- reqBlock.opcode = PM_UNBIND_AND_STOP;
- reqBlock.pointer1 = (BYTE FAR*) &failingModules;
- reqBlock.pointer2 = NULL;
-
- result = (*protManEntry) (&reqBlock, protManDS);
- if (result)
- printf ("Unbind failed: %s\n", Ndis_strerror(result));
-
- for (i = 0; i < STACK_POOL_SIZE; ++i)
- free (freeStacks[i] - STACK_SIZE);
-
- handle = NULL;
-}
-
-int NdisInit (int promis)
-{
- int i, result;
-
- /* Allocate the real mode stacks used for NDIS callbacks
- */
- for (i = 0; i < STACK_POOL_SIZE; ++i)
- {
- freeStacks[i] = malloc (STACK_SIZE);
- if (!freeStacks[i])
- return (0);
- freeStacks[i] += STACK_SIZE;
- }
-
- if (!NdisOpen())
- return (0);
-
- if (!NdisRegisterAndBind(promis))
- return (0);
-
- DEBUG1 ("My module id: %d\n", common.moduleId);
- DEBUG1 ("Handle id; %d\n", handle->common->moduleId);
- DEBUG1 ("MAC card: %-16s - ", handle->moduleName);
-
- atexit (NdisShutdown);
-
- if (!CheckMacFeatures(&handle))
- return (0);
-
- switch (mediaType)
- {
- case MEDIA_FDDI:
- DEBUG0 ("Media type: FDDI");
- break;
- case MEDIA_ETHERNET:
- DEBUG0 ("Media type: ETHERNET");
- break;
- default:
- DEBUG0 ("Unsupported media.\n");
- return (0);
- }
-
- DEBUG1 (" - Frame size: %d\n", frameSize);
-
- if (!NdisStartMac(&handle))
- return (0);
- return (1);
-}
-#endif /* USE_NDIS2 */
-
diff --git a/contrib/libpcap/msdos/ndis2.h b/contrib/libpcap/msdos/ndis2.h
deleted file mode 100644
index 958575f..0000000
--- a/contrib/libpcap/msdos/ndis2.h
+++ /dev/null
@@ -1,559 +0,0 @@
-/*
- * Copyright (c) 1993,1994
- * Texas A&M University. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Texas A&M University
- * 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 UNIVERSITY 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 UNIVERSITY 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.
- *
- * Developers:
- * David K. Hess, Douglas Lee Schales, David R. Safford
- *
- * Heavily modified for Metaware HighC + GNU C 2.8+
- * Gisle Vanem 1998
- */
-
-#ifndef __PCAP_NDIS_H
-#define __PCAP_NDIS_H
-
-#if defined (__HIGHC__)
- #define pascal _CC(_CALLEE_POPS_STACK & ~_REVERSE_PARMS) /* calling convention */
- #define CALLBACK(foo) pascal WORD foo
- #define PAS_PTR(x,arg) typedef FAR WORD pascal (*x) arg
- #define GUARD() _inline (0x9C,0xFA) /* pushfd, cli */
- #define UNGUARD() _inline (0x9D) /* popfd */
- #define FAR _far
-
-#elif defined(__GNUC__)
- #define CALLBACK(foo) WORD foo __attribute__((stdcall))
- #define PAS_PTR(x,arg) typedef WORD (*x) arg __attribute__((stdcall))
- #define GUARD() __asm__ __volatile__ ("pushfd; cli")
- #define UNGUARD() __asm__ __volatile__ ("popfd")
- #define FAR
-
-#elif defined (__TURBOC__)
- #define CALLBACK(foo) WORD pascal foo
- #define PAS_PTR(x,arg) typedef WORD pascal (_far *x) arg
- #define GUARD() _asm { pushf; cli }
- #define UNGUARD() _asm { popf }
- #define FAR _far
-
-#elif defined (__WATCOMC__)
- #define CALLBACK(foo) WORD pascal foo
- #define PAS_PTR(x,arg) typedef WORD pascal (_far *x) arg
- #define GUARD() _disable()
- #define UNGUARD() _enable()
- #define FAR _far
-
-#else
- #error Unsupported compiler
-#endif
-
-
-/*
- * Forwards
- */
-struct _ReqBlock;
-struct _TxBufDescr;
-struct _TDBufDescr;
-
-/*
- * Protocol Manager API
- */
-PAS_PTR (ProtMan, (struct _ReqBlock FAR*, WORD));
-
-/*
- * System request
- */
-PAS_PTR (SystemRequest, (DWORD, DWORD, WORD, WORD, WORD));
-
-/*
- * MAC API
- */
-PAS_PTR (TransmitChain, (WORD, WORD, struct _TxBufDescr FAR*, WORD));
-PAS_PTR (TransferData, (WORD*,WORD, struct _TDBufDescr FAR*, WORD));
-PAS_PTR (Request, (WORD, WORD, WORD, DWORD, WORD, WORD));
-PAS_PTR (ReceiveRelease,(WORD, WORD));
-PAS_PTR (IndicationOn, (WORD));
-PAS_PTR (IndicationOff, (WORD));
-
-
-typedef enum {
- HARDWARE_NOT_INSTALLED = 0,
- HARDWARE_FAILED_DIAG = 1,
- HARDWARE_FAILED_CONFIG = 2,
- HARDWARE_HARD_FAULT = 3,
- HARDWARE_SOFT_FAULT = 4,
- HARDWARE_OK = 7,
- HARDWARE_MASK = 0x0007,
- MAC_BOUND = 0x0008,
- MAC_OPEN = 0x0010,
- DIAG_IN_PROGRESS = 0x0020
- } NdisMacStatus;
-
-typedef enum {
- STATUS_RING_STATUS = 1,
- STATUS_ADAPTER_CHECK = 2,
- STATUS_START_RESET = 3,
- STATUS_INTERRUPT = 4,
- STATUS_END_RESET = 5
- } NdisStatus;
-
-typedef enum {
- FILTER_DIRECTED = 1,
- FILTER_BROADCAST = 2,
- FILTER_PROMISCUOUS = 4,
- FILTER_SOURCE_ROUTE = 8
- } NdisPacketFilter;
-
-typedef enum {
- REQ_INITIATE_DIAGNOSTICS = 1,
- REQ_READ_ERROR_LOG = 2,
- REQ_SET_STATION_ADDRESS = 3,
- REQ_OPEN_ADAPTER = 4,
- REQ_CLOSE_ADAPTER = 5,
- REQ_RESET_MAC = 6,
- REQ_SET_PACKET_FILTER = 7,
- REQ_ADD_MULTICAST_ADDRESS = 8,
- REQ_DELETE_MULTICAST_ADDRESS = 9,
- REQ_UPDATE_STATISTICS = 10,
- REQ_CLEAR_STATISTICS = 11,
- REQ_INTERRUPT_REQUEST = 12,
- REQ_SET_FUNCTIONAL_ADDRESS = 13,
- REQ_SET_LOOKAHEAD = 14
- } NdisGeneralRequest;
-
-typedef enum {
- SF_BROADCAST = 0x00000001L,
- SF_MULTICAST = 0x00000002L,
- SF_FUNCTIONAL = 0x00000004L,
- SF_PROMISCUOUS = 0x00000008L,
- SF_SOFT_ADDRESS = 0x00000010L,
- SF_STATS_CURRENT = 0x00000020L,
- SF_INITIATE_DIAGS = 0x00000040L,
- SF_LOOPBACK = 0x00000080L,
- SF_RECEIVE_CHAIN = 0x00000100L,
- SF_SOURCE_ROUTING = 0x00000200L,
- SF_RESET_MAC = 0x00000400L,
- SF_OPEN_CLOSE = 0x00000800L,
- SF_INTERRUPT_REQUEST = 0x00001000L,
- SF_SOURCE_ROUTING_BRIDGE = 0x00002000L,
- SF_VIRTUAL_ADDRESSES = 0x00004000L
- } NdisMacServiceFlags;
-
-typedef enum {
- REQ_INITIATE_BIND = 1,
- REQ_BIND = 2,
- REQ_INITIATE_PREBIND = 3,
- REQ_INITIATE_UNBIND = 4,
- REQ_UNBIND = 5
- } NdisSysRequest;
-
-typedef enum {
- PM_GET_PROTOCOL_MANAGER_INFO = 1,
- PM_REGISTER_MODULE = 2,
- PM_BIND_AND_START = 3,
- PM_GET_PROTOCOL_MANAGER_LINKAGE = 4,
- PM_GET_PROTOCOL_INI_PATH = 5,
- PM_REGISTER_PROTOCOL_MANAGER_INFO = 6,
- PM_INIT_AND_REGISTER = 7,
- PM_UNBIND_AND_STOP = 8,
- PM_BIND_STATUS = 9,
- PM_REGISTER_STATUS = 10
- } NdisProtManager;
-
-
-typedef enum {
- ERR_SUCCESS = 0x00,
- ERR_WAIT_FOR_RELEASE = 0x01,
- ERR_REQUEST_QUEUED = 0x02,
- ERR_FRAME_NOT_RECOGNIZED = 0x03,
- ERR_FRAME_REJECTED = 0x04,
- ERR_FORWARD_FRAME = 0x05,
- ERR_OUT_OF_RESOURCE = 0x06,
- ERR_INVALID_PARAMETER = 0x07,
- ERR_INVALID_FUNCTION = 0x08,
- ERR_NOT_SUPPORTED = 0x09,
- ERR_HARDWARE_ERROR = 0x0A,
- ERR_TRANSMIT_ERROR = 0x0B,
- ERR_NO_SUCH_DESTINATION = 0x0C,
- ERR_BUFFER_TOO_SMALL = 0x0D,
- ERR_ALREADY_STARTED = 0x20,
- ERR_INCOMPLETE_BINDING = 0x21,
- ERR_DRIVER_NOT_INITIALIZED = 0x22,
- ERR_HARDWARE_NOT_FOUND = 0x23,
- ERR_HARDWARE_FAILURE = 0x24,
- ERR_CONFIGURATION_FAILURE = 0x25,
- ERR_INTERRUPT_CONFLICT = 0x26,
- ERR_INCOMPATIBLE_MAC = 0x27,
- ERR_INITIALIZATION_FAILED = 0x28,
- ERR_NO_BINDING = 0x29,
- ERR_NETWORK_MAY_NOT_BE_CONNECTED = 0x2A,
- ERR_INCOMPATIBLE_OS_VERSION = 0x2B,
- ERR_ALREADY_REGISTERED = 0x2C,
- ERR_PATH_NOT_FOUND = 0x2D,
- ERR_INSUFFICIENT_MEMORY = 0x2E,
- ERR_INFO_NOT_FOUND = 0x2F,
- ERR_GENERAL_FAILURE = 0xFF
- } NdisError;
-
-#define NDIS_PARAM_INTEGER 0
-#define NDIS_PARAM_STRING 1
-
-#define NDIS_TX_BUF_LENGTH 8
-#define NDIS_TD_BUF_LENGTH 1
-#define NDIS_RX_BUF_LENGTH 8
-
-#define NDIS_PTR_PHYSICAL 0
-#define NDIS_PTR_VIRTUAL 2
-
-#define NDIS_PATH "PROTMAN$"
-
-
-typedef struct _CommonChars {
- WORD tableSize;
- BYTE majorNdisVersion; /* 2 - Latest version */
- BYTE minorNdisVersion; /* 0 */
- WORD reserved1;
- BYTE majorModuleVersion;
- BYTE minorModuleVersion;
- DWORD moduleFlags;
- /* 0 - Binding at upper boundary supported
- * 1 - Binding at lower boundary supported
- * 2 - Dynamically bound.
- * 3-31 - Reserved, must be zero.
- */
- BYTE moduleName[16];
- BYTE protocolLevelUpper;
- /* 1 - MAC
- * 2 - Data Link
- * 3 - Network
- * 4 - Transport
- * 5 - Session
- * -1 - Not specified
- */
- BYTE interfaceUpper;
- BYTE protocolLevelLower;
- /* 0 - Physical
- * 1 - MAC
- * 2 - Data Link
- * 3 - Network
- * 4 - Transport
- * 5 - Session
- * -1 - Not specified
- */
- BYTE interfaceLower;
- WORD moduleId;
- WORD moduleDS;
- SystemRequest systemRequest;
- BYTE *serviceChars;
- BYTE *serviceStatus;
- BYTE *upperDispatchTable;
- BYTE *lowerDispatchTable;
- BYTE *reserved2; /* Must be NULL */
- BYTE *reserved3; /* Must be NULL */
- } CommonChars;
-
-
-typedef struct _MulticastList {
- WORD maxMulticastAddresses;
- WORD numberMulticastAddresses;
- BYTE multicastAddress[16][16];
- } MulticastList;
-
-
-typedef struct _MacChars {
- WORD tableSize;
- BYTE macName[16];
- WORD addressLength;
- BYTE permanentAddress[16];
- BYTE currentAddress[16];
- DWORD currentFunctionalAddress;
- MulticastList *multicastList;
- DWORD linkSpeed;
- DWORD serviceFlags;
- WORD maxFrameSize;
- DWORD txBufferSize;
- WORD txBufferAllocSize;
- DWORD rxBufferSize;
- WORD rxBufferAllocSize;
- BYTE ieeeVendor[3];
- BYTE vendorAdapter;
- BYTE *vendorAdapterDescription;
- WORD interruptLevel;
- WORD txQueueDepth;
- WORD maxDataBlocks;
- } MacChars;
-
-
-typedef struct _ProtocolChars {
- WORD length;
- BYTE name[16];
- WORD type;
- } ProtocolChars;
-
-
-typedef struct _MacUpperDispatch {
- CommonChars *backPointer;
- Request request;
- TransmitChain transmitChain;
- TransferData transferData;
- ReceiveRelease receiveRelease;
- IndicationOn indicationOn;
- IndicationOff indicationOff;
- } MacUpperDispatch;
-
-
-typedef struct _MacStatusTable {
- WORD tableSize;
- DWORD lastDiag;
- DWORD macStatus;
- WORD packetFilter;
- BYTE *mediaSpecificStats;
- DWORD lastClear;
- DWORD totalFramesRx;
- DWORD totalFramesCrc;
- DWORD totalBytesRx;
- DWORD totalDiscardBufSpaceRx;
- DWORD totalMulticastRx;
- DWORD totalBroadcastRx;
- DWORD obsolete1[5];
- DWORD totalDiscardHwErrorRx;
- DWORD totalFramesTx;
- DWORD totalBytesTx;
- DWORD totalMulticastTx;
- DWORD totalBroadcastTx;
- DWORD obsolete2[2];
- DWORD totalDiscardTimeoutTx;
- DWORD totalDiscardHwErrorTx;
- } MacStatusTable;
-
-
-typedef struct _ProtDispatch {
- CommonChars *backPointer;
- DWORD flags;
- /* 0 - handles non-LLC frames
- * 1 - handles specific-LSAP LLC frames
- * 2 - handles specific-LSAP LLC frames
- * 3-31 - reserved must be 0
- */
- void (*requestConfirm) (void);
- void (*transmitConfirm) (void);
- void (*receiveLookahead) (void);
- void (*indicationComplete) (void);
- void (*receiveChain) (void);
- void (*status) (void);
- } ProtDispatch;
-
-
-typedef struct _ReqBlock {
- WORD opcode;
- WORD status;
- BYTE FAR *pointer1;
- BYTE FAR *pointer2;
- WORD word1;
- } ReqBlock;
-
-
-typedef struct _TxBufDescrRec {
- BYTE txPtrType;
- BYTE dummy;
- WORD txDataLen;
- BYTE *txDataPtr;
- } TxBufDescrRec;
-
-
-typedef struct _TxBufDescr {
- WORD txImmedLen;
- BYTE *txImmedPtr;
- WORD txDataCount;
- TxBufDescrRec txBufDescrRec[NDIS_TX_BUF_LENGTH];
- } TxBufDescr;
-
-
-typedef struct _TDBufDescrRec {
- BYTE tDPtrType;
- BYTE dummy;
- WORD tDDataLen;
- BYTE *tDDataPtr;
- } TDBufDescrRec;
-
-
-typedef struct _TDBufDescr {
- WORD tDDataCount;
- TDBufDescrRec tDBufDescrRec[NDIS_TD_BUF_LENGTH];
- } TDBufDescr;
-
-
-typedef struct _RxBufDescrRec {
- WORD rxDataLen;
- BYTE *rxDataPtr;
- } RxBufDescrRec;
-
-
-typedef struct _RxBufDescr {
- WORD rxDataCount;
- RxBufDescrRec rxBufDescrRec[NDIS_RX_BUF_LENGTH];
- } RxBufDescr;
-
-
-typedef struct _PktBuf {
- struct _PktBuf *nextLink;
- struct _PktBuf *prevLink;
- int handle;
- int length;
- int packetLength;
- DWORD sequence;
- BYTE *buffer;
- } PktBuf;
-
-
-typedef struct _CardHandle {
- BYTE moduleName[16];
- CommonChars *common;
- } CardHandle;
-
-
-typedef struct _BindingsList {
- WORD numBindings;
- BYTE moduleName[2][16];
- } BindingsList;
-
-
-typedef struct _FailingModules {
- BYTE upperModuleName[16];
- BYTE lowerModuleName[16];
- } FailingModules;
-
-
-typedef union _HardwareAddress {
- BYTE bytes[6];
- WORD words[3];
- struct {
- BYTE bytes[6];
- } addr;
- } HardwareAddress;
-
-
-typedef struct _FddiHeader {
- BYTE frameControl;
- HardwareAddress etherDestHost;
- HardwareAddress etherSrcHost;
- } FddiHeader;
-
-
-typedef struct _EthernetIIHeader {
- HardwareAddress etherDestHost;
- HardwareAddress etherSrcHost;
- WORD etherType;
- } EthernetIIHeader;
-
-
-typedef struct _Ieee802Dot5Header {
- HardwareAddress etherDestHost;
- HardwareAddress etherSrcHost;
- BYTE routeInfo[30];
- } Ieee802Dot5Header;
-
-
-typedef struct _Ieee802Dot2SnapHeader {
- BYTE dsap; /* 0xAA */
- BYTE ssap; /* 0xAA */
- BYTE control; /* 3 */
- BYTE protocolId[5];
- } Ieee802Dot2SnapHeader;
-
-
-/*
- * Prototypes
- */
-extern char *NdisLastError (void);
-extern int NdisOpen (void);
-extern int NdisInit (int promis);
-extern int NdisRegisterAndBind (int promis);
-extern void NdisShutdown (void);
-extern void NdisCheckMacFeatures (struct _CardHandle *card);
-extern int NdisSendPacket (struct _PktBuf *pktBuf, int macId);
-
-/*
- * Assembly "glue" functions
- */
-extern int systemRequestGlue();
-extern int requestConfirmGlue();
-extern int transmitConfirmGlue();
-extern int receiveLookaheadGlue();
-extern int indicationCompleteGlue();
-extern int receiveChainGlue();
-extern int statusGlue();
-
-/*
- * IOCTL function
- */
-#ifdef __SMALL__
-extern int _far NdisGetLinkage (int handle, char *data, int size);
-#else
-extern int NdisGetLinkage (int handle, char *data, int size);
-#endif
-
-/*
- * NDIS callback handlers
- */
-CALLBACK (NdisSystemRequest (DWORD,DWORD, WORD, WORD, WORD));
-CALLBACK (NdisRequestConfirm ( WORD, WORD, WORD, WORD, WORD,WORD));
-CALLBACK (NdisTransmitConfirm ( WORD, WORD, WORD, WORD, WORD));
-CALLBACK (NdisReceiveLookahead ( WORD, WORD, WORD, BYTE*, BYTE*, WORD));
-CALLBACK (NdisReceiveChain ( WORD, WORD, WORD, struct _RxBufDescr*, BYTE*, WORD));
-CALLBACK (NdisStatusProc ( WORD, WORD, BYTE*, WORD,WORD));
-CALLBACK (NdisIndicationComplete( WORD, WORD));
-
-BYTE *NdisAllocStack (void);
-void NdisFreeStack (BYTE*);
-
-#ifdef __HIGHC__
- #define RENAME_ASM_SYM(x) pragma Alias(x,"@" #x "") /* prepend `@' */
- #define RENAME_C_SYM(x) pragma Alias(x,"_" #x "") /* prepend `_' */
-
- RENAME_ASM_SYM (systemRequestGlue);
- RENAME_ASM_SYM (requestConfirmGlue);
- RENAME_ASM_SYM (transmitConfirmGlue);
- RENAME_ASM_SYM (receiveLookaheadGlue);
- RENAME_ASM_SYM (indicationCompleteGlue);
- RENAME_ASM_SYM (receiveChainGlue);
- RENAME_ASM_SYM (statusGlue);
- RENAME_ASM_SYM (NdisGetLinkage);
- RENAME_C_SYM (NdisSystemRequest);
- RENAME_C_SYM (NdisRequestConfirm);
- RENAME_C_SYM (NdisTransmitConfirm);
- RENAME_C_SYM (NdisReceiveLookahead);
- RENAME_C_SYM (NdisIndicationComplete);
- RENAME_C_SYM (NdisReceiveChain);
- RENAME_C_SYM (NdisStatusProc);
- RENAME_C_SYM (NdisAllocStack);
- RENAME_C_SYM (NdisFreeStack);
-#endif
-
-#endif
diff --git a/contrib/libpcap/msdos/ndis_0.asm b/contrib/libpcap/msdos/ndis_0.asm
deleted file mode 100644
index 2990985..0000000
--- a/contrib/libpcap/msdos/ndis_0.asm
+++ /dev/null
@@ -1,188 +0,0 @@
-PAGE 60,132
-NAME NDIS_0
-
-ifdef DOSX
- .386
- _TEXT SEGMENT PUBLIC DWORD USE16 'CODE'
- _TEXT ENDS
- _DATA SEGMENT PUBLIC DWORD USE16 'CODE'
- _DATA ENDS
- _TEXT32 SEGMENT PUBLIC BYTE USE32 'CODE'
- _TEXT32 ENDS
- CB_DSEG EQU <CS> ; DOSX is tiny-model
- D_SEG EQU <_TEXT SEGMENT>
- D_END EQU <_TEXT ENDS>
- ASSUME CS:_TEXT,DS:_TEXT
-
- PUSHREGS equ <pushad>
- POPREGS equ <popad>
-
- PUBPROC macro name
- align 4
- public @&name
- @&name label near
- endm
-else
- .286
- _TEXT SEGMENT PUBLIC DWORD 'CODE'
- _TEXT ENDS
- _DATA SEGMENT PUBLIC DWORD 'DATA'
- _DATA ENDS
- CB_DSEG EQU <SEG _DATA> ; 16bit is small/large model
- D_SEG EQU <_DATA SEGMENT>
- D_END EQU <_DATA ENDS>
- ASSUME CS:_TEXT,DS:_DATA
-
- PUSHREGS equ <pusha>
- POPREGS equ <popa>
-
- PUBPROC macro name
- public _&name
- _&name label far
- endm
-endif
-
-;-------------------------------------------
-
-D_SEG
-
-D_END
-
-
-_TEXT SEGMENT
-
-EXTRN _NdisSystemRequest : near
-EXTRN _NdisRequestConfirm : near
-EXTRN _NdisTransmitConfirm : near
-EXTRN _NdisReceiveLookahead : near
-EXTRN _NdisIndicationComplete : near
-EXTRN _NdisReceiveChain : near
-EXTRN _NdisStatusProc : near
-EXTRN _NdisAllocStack : near
-EXTRN _NdisFreeStack : near
-
-;
-; *ALL* interrupt threads come through this macro.
-;
-CALLBACK macro callbackProc, argsSize
-
- pushf
- PUSHREGS ;; Save the registers
-
- push es
- push ds
- mov ax,CB_DSEG ;; Load DS
- mov ds,ax
- call _NdisAllocStack ;; Get and install a stack.
-
- mov bx,ss ;; Save off the old stack in other regs
- mov cx,sp
- mov ss,dx ;; Install the new one
- mov sp,ax
- push bx ;; Save the old one on to the new stack
- push cx
- sub sp,&argsSize ;; Allocate space for arguments on the stack
-
- mov ax,ss ;; Set up the destination for the move
- mov es,ax
- mov di,sp
- mov ds,bx ;; Set up the source for the move.
- mov si,cx
- add si,4+6+32
-
- mov cx,&argsSize ;; Move the arguments to the stack.
- shr cx,1
- cld
- rep movsw
-
- mov ax,CB_DSEG ;; Set my data segment again.
- mov ds,ax
-
- call &callbackProc ;; Call the real callback.
- pop di ;; Pop off the old stack
- pop si
- mov bx,ss ;; Save off the current allocated stack.
- mov cx,sp
- mov ss,si ;; Restore the old stack
- mov sp,di
- push ax ;; Save the return code
- push bx ;; Free the stack. Push the pointer to it
- push cx
- call _NdisFreeStack
- add sp,4
- pop ax ;; Get the return code back
- add di,32 ;; Get a pointer to ax on the stack
- mov word ptr ss:[di],ax
- pop ds
- pop es
-
- POPREGS
- popf
-endm
-
-;
-; Define all of the callbacks for the NDIS procs.
-;
-
-PUBPROC systemRequestGlue
-CALLBACK _NdisSystemRequest,14
-RETF
-
-PUBPROC requestConfirmGlue
-CALLBACK _NdisRequestConfirm,12
-RETF
-
-PUBPROC transmitConfirmGlue
-CALLBACK _NdisTransmitConfirm,10
-RETF
-
-PUBPROC receiveLookaheadGlue
-CALLBACK _NdisReceiveLookahead,16
-RETF
-
-PUBPROC indicationCompleteGlue
-CALLBACK _NdisIndicationComplete,4
-RETF
-
-PUBPROC receiveChainGlue
-CALLBACK _NdisReceiveChain,16
-RETF
-
-PUBPROC statusGlue
-CALLBACK _NdisStatusProc,12
-RETF
-
-;
-; int FAR NdisGetLinkage (int handle, char *data, int size);
-;
-
-ifdef DOSX
- PUBPROC NdisGetLinkage
- push ebx
- mov ebx, [esp+8] ; device handle
- mov eax, 4402h ; IOCTRL read function
- mov edx, [esp+12] ; DS:EDX -> result data
- mov ecx, [esp+16] ; ECX = length
- int 21h
- pop ebx
- jc @fail
- xor eax, eax
- @fail: ret
-
-else
- PUBPROC NdisGetLinkage
- enter 0, 0
- mov bx, [bp+6]
- mov ax, 4402h
- mov dx, [bp+8]
- mov cx, [bp+12]
- int 21h
- jc @fail
- xor ax, ax
- @fail: leave
- retf
-endif
-
-ENDS
-
-END
diff --git a/contrib/libpcap/msdos/pkt_rx0.asm b/contrib/libpcap/msdos/pkt_rx0.asm
deleted file mode 100644
index 94f3d09..0000000
--- a/contrib/libpcap/msdos/pkt_rx0.asm
+++ /dev/null
@@ -1,197 +0,0 @@
-PAGE 60,132
-NAME PKT_RX
-
-ifdef ??version ; using TASM
- masm
- jumps
-endif
-
-PUBLIC _pktDrop, _pktRxBuf, _pktTxBuf, _pktTemp
-PUBLIC _rxOutOfs, _rxInOfs, _PktReceiver, _pktRxEnd
-
-;
-; these sizes MUST be equal to the sizes in PKTDRVR.H
-;
-
-RX_BUF_SIZE = 1500 ; max message size on Ethernet
-TX_BUF_SIZE = 1500
-
-ifdef DOSX
- .386
- NUM_RX_BUF = 32 ; # of RX element buffers
- _TEXT SEGMENT PUBLIC DWORD USE16 'CODE'
- _TEXT ENDS
- _DATA SEGMENT PUBLIC DWORD USE16 'CODE'
- _DATA ENDS
- D_SEG EQU <_TEXT SEGMENT>
- D_END EQU <_TEXT ENDS>
- ASSUME CS:_TEXT,DS:_TEXT
-else
- .286
- NUM_RX_BUF = 10
- _TEXT SEGMENT PUBLIC DWORD 'CODE'
- _TEXT ENDS
- _DATA SEGMENT PUBLIC DWORD 'DATA'
- _DATA ENDS
- D_SEG EQU <_DATA SEGMENT>
- D_END EQU <_DATA ENDS>
- ASSUME CS:_TEXT,DS:_DATA
-endif
-
-;-------------------------------------------
-
-D_SEG
-
-RX_ELEMENT STRUC
- firstCount dw 0 ; # of bytes on 1st call
- secondCount dw 0 ; # of bytes on 2nd call
- handle dw 0 ; handle for upcall
- destinAdr db 6 dup (0) ; packet destination address
- sourceAdr db 6 dup (0) ; packet source address
- protocol dw 0 ; packet protocol number
- rxBuffer db RX_BUF_SIZE dup (0) ; RX buffer
-ENDS
- align 4
-_rxOutOfs dw offset _pktRxBuf ; ring buffer offsets
-_rxInOfs dw offset _pktRxBuf ; into _pktRxBuf
-_pktDrop dw 0,0 ; packet drop counter
-_pktTemp db 20 dup (0) ; temp work area
-_pktTxBuf db (TX_BUF_SIZE+14) dup (0) ; TX buffer
-_pktRxBuf RX_ELEMENT NUM_RX_BUF dup (<>) ; RX structures
- LAST_OFS = offset $
-
- screenSeg dw 0B800h
- newInOffset dw 0
-
- fanChars db '-\|/'
- fanIndex dw 0
-
-D_END
-
-_TEXT SEGMENT
-
-
-SHOW_RX MACRO
- push es
- push bx
- mov bx, screenSeg
- mov es, bx ;; r-mode segment of colour screen
- mov di, 158 ;; upper right corner - 1
- mov bx, fanIndex
- mov al, fanChars[bx] ;; get write char
- mov ah, 15 ;; and white colour
- stosw ;; write to screen at ES:EDI
- inc fanIndex ;; update next index
- and fanIndex, 3
- pop bx
- pop es
-ENDM
-
-;------------------------------------------------------------------------
-;
-; This macro return ES:DI to tail of Rx queue
-
-ENQUEUE MACRO
- LOCAL @noWrap
- mov ax, _rxInOfs ;; DI = current in-offset
- add ax, SIZE RX_ELEMENT ;; point to next _pktRxBuf buffer
- cmp ax, LAST_OFS ;; pointing past last ?
- jb @noWrap ;; no - jump
- lea ax, _pktRxBuf ;; yes, point to 1st buffer
- align 4
-@noWrap: cmp ax, _rxOutOfs ;; in-ofs = out-ofs ?
- je @dump ;; yes, queue is full
- mov di, _rxInOfs ;; ES:DI -> buffer at queue input
- mov newInOffset, ax ;; remember new input offset
-
- ;; NOTE. rxInOfs is updated after the packet has been copied
- ;; to ES:DI (= DS:SI on 2nd call) by the packet driver
-
-ENDM
-
-;------------------------------------------------------------------------
-;
-; This routine gets called by the packet driver twice:
-; 1st time (AX=0) it requests an address where to put the packet
-;
-; 2nd time (AX=1) the packet has been copied to this location (DS:SI)
-; BX has client handle (stored in RX_ELEMENT.handle).
-; CX has # of bytes in packet on both call. They should be equal.
-;
-; A test for equality is done by putting CX in _pktRxBuf [n].firstCount
-; and _pktRxBuf[n].secondCount, and CL on first call in
-; _pktRxBuf[n].rxBuffer[CX]. These values are checked in "PktReceive"
-; (PKTDRVR.C)
-;
-;---------------------------------------------------------------------
-
-_PktReceiver:
- pushf
- cli ; no distraction wanted !
- push ds
- push bx
-ifdef DOSX
- mov bx, cs
-else
- mov bx, SEG _DATA
-endif
- mov ds, bx
- mov es, bx ; ES = DS = CS or seg _DATA
- pop bx ; restore handle
-
- cmp ax, 0 ; first call? (AX=0)
- jne @post ; AX=1: second call, do post process
-
-ifdef DEBUG
- SHOW_RX ; show that a packet is received
-endif
- cmp cx, RX_BUF_SIZE+14 ; size OK ?
- ja @skip ; no, packet to large for us
-
- ENQUEUE ; ES:DI -> _pktRxBuf[n]
-
- mov [di].firstCount, cx ; remember the first count.
- mov [di].handle, bx ; remember the handle.
- add di, 6 ; ES:DI -> _pktRxBuf[n].destinAdr
- pop ds
- popf
- retf ; far return to driver with ES:DI
-
- align 4
-@dump: inc _pktDrop[0] ; discard the packet on 1st call
- adc _pktDrop[2], 0 ; increment packets lost
-
-@skip: xor di, di ; return ES:DI = NIL pointer
- xor ax, ax
- mov es, ax
- pop ds
- popf
- retf
-
- align 4
-@post: or si, si ; DS:SI->_pktRxBuf[n][n].destinAdr
- jz @discard ; make sure we don't use NULL-pointer
-
- sub si, 6 ; DS:SI -> _pktRxBuf[n].destinAdr
- ;
- ; push si
- ; push [si].firstCount
- ; call bpf_filter_match ; run the filter here some day?
- ; add sp, 4
- ; cmp ax, 0
- ; je @discard
-
- mov [si].secondCount, cx
- mov ax, newInOffset
- mov _rxInOfs, ax ; update _pktRxBuf input offset
-
- align 4
-@discard:pop ds
- popf
- retf
-
-_pktRxEnd db 0 ; marker for end of r-mode code/data
-
-_TEXT ENDS
-
-END
diff --git a/contrib/libpcap/msdos/pkt_rx1.s b/contrib/libpcap/msdos/pkt_rx1.s
deleted file mode 100644
index 98eafaf..0000000
--- a/contrib/libpcap/msdos/pkt_rx1.s
+++ /dev/null
@@ -1,155 +0,0 @@
-;
-; This file requires NASM 0.97+ to assemble
-;
-; Currently used only for djgpp + DOS4GW targets
-;
-; these sizes MUST be equal to the sizes in PKTDRVR.H
-;
-%define ETH_MTU 1500 ; max data size on Ethernet
-%define ETH_MIN 60 ; min/max total frame size
-%define ETH_MAX (ETH_MTU+2*6+2)
-%define NUM_RX_BUF 32 ; # of RX element buffers
-%define RX_SIZE (ETH_MAX+6) ; sizeof(RX_ELEMENT) = 1514+6
-%idefine offset
-
-struc RX_ELEMENT
- .firstCount resw 1 ; # of bytes on 1st call
- .secondCount resw 1 ; # of bytes on 2nd call
- .handle resw 1 ; handle for upcall
- ; .timeStamp resw 4 ; 64-bit RDTSC value
- .destinAdr resb 6 ; packet destination address
- .sourceAdr resb 6 ; packet source address
- .protocol resw 1 ; packet protocol number
- .rxBuffer resb ETH_MTU ; RX buffer
-endstruc
-
-;-------------------------------------------
-
-[org 0] ; assemble to .bin file
-
-_rxOutOfs dw offset _pktRxBuf ; ring buffer offsets
-_rxInOfs dw offset _pktRxBuf ; into _pktRxBuf
-_pktDrop dw 0,0 ; packet drop counter
-_pktTemp resb 20 ; temp work area
-_pktTxBuf resb (ETH_MAX) ; TX buffer
-_pktRxBuf resb (RX_SIZE*NUM_RX_BUF) ; RX structures
- LAST_OFS equ $
-
-screenSeg dw 0B800h
-newInOffset dw 0
-
-fanChars db '-\|/'
-fanIndex dw 0
-
-%macro SHOW_RX 0
- push es
- push bx
- mov bx, [screenSeg]
- mov es, bx ;; r-mode segment of colour screen
- mov di, 158 ;; upper right corner - 1
- mov bx, [fanIndex]
- mov al, [fanChars+bx] ;; get write char
- mov ah, 15 ;; and white colour
- cld ;; Needed?
- stosw ;; write to screen at ES:EDI
- inc word [fanIndex] ;; update next index
- and word [fanIndex], 3
- pop bx
- pop es
-%endmacro
-
-;PutTimeStamp
-; rdtsc
-; mov [si].timeStamp, eax
-; mov [si+4].timeStamp, edx
-; ret
-
-
-;------------------------------------------------------------------------
-;
-; This routine gets called by the packet driver twice:
-; 1st time (AX=0) it requests an address where to put the packet
-;
-; 2nd time (AX=1) the packet has been copied to this location (DS:SI)
-; BX has client handle (stored in RX_ELEMENT.handle).
-; CX has # of bytes in packet on both call. They should be equal.
-; A test for equality is done by putting CX in _pktRxBuf [n].firstCount
-; and _pktRxBuf[n].secondCount, and CL on first call in
-; _pktRxBuf[n].rxBuffer[CX]. These values are checked in "PktReceive"
-; (PKTDRVR.C)
-;
-;---------------------------------------------------------------------
-
-_PktReceiver:
- pushf
- cli ; no distraction wanted !
- push ds
- push bx
- mov bx, cs
- mov ds, bx
- mov es, bx ; ES = DS = CS or seg _DATA
- pop bx ; restore handle
-
- cmp ax, 0 ; first call? (AX=0)
- jne @post ; AX=1: second call, do post process
-
-%ifdef DEBUG
- SHOW_RX ; show that a packet is received
-%endif
-
- cmp cx, ETH_MAX ; size OK ?
- ja @skip ; no, too big
-
- mov ax, [_rxInOfs]
- add ax, RX_SIZE
- cmp ax, LAST_OFS
- jb @noWrap
- mov ax, offset _pktRxBuf
-@noWrap:
- cmp ax, [_rxOutOfs]
- je @dump
- mov di, [_rxInOfs] ; ES:DI -> _pktRxBuf[n]
- mov [newInOffset], ax
-
- mov [di], cx ; remember firstCount.
- mov [di+4], bx ; remember handle.
- add di, 6 ; ES:DI -> _pktRxBuf[n].destinAdr
- pop ds
- popf
- retf ; far return to driver with ES:DI
-
-@dump: add word [_pktDrop+0], 1 ; discard the packet on 1st call
- adc word [_pktDrop+2], 0 ; increment packets lost
-
-@skip: xor di, di ; return ES:DI = NIL pointer
- xor ax, ax
- mov es, ax
- pop ds
- popf
- retf
-
-@post: or si, si ; DS:SI->_pktRxBuf[n][n].destinAdr
- jz @discard ; make sure we don't use NULL-pointer
-
- ;
- ; push si
- ; call bpf_filter_match ; run the filter here some day
- ; pop si
- ; cmp ax, 0
- ; je @discard
-
- mov [si-6+2], cx ; store _pktRxBuf[n].secondCount
- mov ax, [newInOffset]
- mov [_rxInOfs], ax ; update _pktRxBuf input offset
-
- ; call PutTimeStamp
-
-@discard:
- pop ds
- popf
- retf
-
-_pktRxEnd db 0 ; marker for end of r-mode code/data
-
-END
-
diff --git a/contrib/libpcap/msdos/pktdrvr.c b/contrib/libpcap/msdos/pktdrvr.c
deleted file mode 100644
index 360c893..0000000
--- a/contrib/libpcap/msdos/pktdrvr.c
+++ /dev/null
@@ -1,1436 +0,0 @@
-/*
- * File.........: pktdrvr.c
- *
- * Responsible..: Gisle Vanem, giva@bgnett.no
- *
- * Created......: 26.Sept 1995
- *
- * Description..: Packet-driver interface for 16/32-bit C :
- * Borland C/C++ 3.0+ small/large model
- * Watcom C/C++ 11+, DOS4GW flat model
- * Metaware HighC 3.1+ and PharLap 386|DosX
- * GNU C/C++ 2.7+ and djgpp 2.x extender
- *
- * References...: PC/TCP Packet driver Specification. rev 1.09
- * FTP Software Inc.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <dos.h>
-
-#include "pcap-dos.h"
-#include "pcap-int.h"
-#include "msdos/pktdrvr.h"
-
-#if (DOSX)
-#define NUM_RX_BUF 32 /* # of buffers in Rx FIFO queue */
-#else
-#define NUM_RX_BUF 10
-#endif
-
-#define DIM(x) (sizeof((x)) / sizeof(x[0]))
-#define PUTS(s) do { \
- if (!pktInfo.quiet) \
- pktInfo.error ? \
- printf ("%s: %s\n", s, pktInfo.error) : \
- printf ("%s\n", pktInfo.error = s); \
- } while (0)
-
-#if defined(__HIGHC__)
- extern UINT _mwenv;
-
-#elif defined(__DJGPP__)
- #include <stddef.h>
- #include <dpmi.h>
- #include <go32.h>
- #include <pc.h>
- #include <sys/farptr.h>
-
-#elif defined(__WATCOMC__)
- #include <i86.h>
- #include <stddef.h>
- extern char _Extender;
-
-#else
- extern void far PktReceiver (void);
-#endif
-
-
-#if (DOSX & (DJGPP|DOS4GW))
- #include <sys/pack_on.h>
-
- struct DPMI_regs {
- DWORD r_di;
- DWORD r_si;
- DWORD r_bp;
- DWORD reserved;
- DWORD r_bx;
- DWORD r_dx;
- DWORD r_cx;
- DWORD r_ax;
- WORD r_flags;
- WORD r_es, r_ds, r_fs, r_gs;
- WORD r_ip, r_cs, r_sp, r_ss;
- };
-
- /* Data located in a real-mode segment. This becomes far at runtime
- */
- typedef struct { /* must match data/code in pkt_rx1.s */
- WORD _rxOutOfs;
- WORD _rxInOfs;
- DWORD _pktDrop;
- BYTE _pktTemp [20];
- TX_ELEMENT _pktTxBuf[1];
- RX_ELEMENT _pktRxBuf[NUM_RX_BUF];
- WORD _dummy[2]; /* screenSeg,newInOffset */
- BYTE _fanChars[4];
- WORD _fanIndex;
- BYTE _PktReceiver[15]; /* starts on a paragraph (16byte) */
- } PktRealStub;
- #include <sys/pack_off.h>
-
- static BYTE real_stub_array [] = {
- #include "pkt_stub.inc" /* generated opcode array */
- };
-
- #define rxOutOfs offsetof (PktRealStub,_rxOutOfs)
- #define rxInOfs offsetof (PktRealStub,_rxInOfs)
- #define PktReceiver offsetof (PktRealStub,_PktReceiver [para_skip])
- #define pktDrop offsetof (PktRealStub,_pktDrop)
- #define pktTemp offsetof (PktRealStub,_pktTemp)
- #define pktTxBuf offsetof (PktRealStub,_pktTxBuf)
- #define FIRST_RX_BUF offsetof (PktRealStub,_pktRxBuf [0])
- #define LAST_RX_BUF offsetof (PktRealStub,_pktRxBuf [NUM_RX_BUF-1])
-
-#else
- extern WORD rxOutOfs; /* offsets into pktRxBuf FIFO queue */
- extern WORD rxInOfs;
- extern DWORD pktDrop; /* # packets dropped in PktReceiver() */
- extern BYTE pktRxEnd; /* marks the end of r-mode code/data */
-
- extern RX_ELEMENT pktRxBuf [NUM_RX_BUF]; /* PktDrvr Rx buffers */
- extern TX_ELEMENT pktTxBuf; /* PktDrvr Tx buffer */
- extern char pktTemp[20]; /* PktDrvr temp area */
-
- #define FIRST_RX_BUF (WORD) &pktRxBuf [0]
- #define LAST_RX_BUF (WORD) &pktRxBuf [NUM_RX_BUF-1]
-#endif
-
-
-#ifdef __BORLANDC__ /* Use Borland's inline functions */
- #define memcpy __memcpy__
- #define memcmp __memcmp__
- #define memset __memset__
-#endif
-
-
-#if (DOSX & PHARLAP)
- extern void PktReceiver (void); /* in pkt_rx0.asm */
- static int RealCopy (ULONG, ULONG, REALPTR*, FARPTR*, USHORT*);
-
- #undef FP_SEG
- #undef FP_OFF
- #define FP_OFF(x) ((WORD)(x))
- #define FP_SEG(x) ((WORD)(realBase >> 16))
- #define DOS_ADDR(s,o) (((DWORD)(s) << 16) + (WORD)(o))
- #define r_ax eax
- #define r_bx ebx
- #define r_dx edx
- #define r_cx ecx
- #define r_si esi
- #define r_di edi
- #define r_ds ds
- #define r_es es
- LOCAL FARPTR protBase;
- LOCAL REALPTR realBase;
- LOCAL WORD realSeg; /* DOS para-address of allocated area */
- LOCAL SWI_REGS reg;
-
- static WORD _far *rxOutOfsFp, *rxInOfsFp;
-
-#elif (DOSX & DJGPP)
- static _go32_dpmi_seginfo rm_mem;
- static __dpmi_regs reg;
- static DWORD realBase;
- static int para_skip = 0;
-
- #define DOS_ADDR(s,o) (((WORD)(s) << 4) + (o))
- #define r_ax x.ax
- #define r_bx x.bx
- #define r_dx x.dx
- #define r_cx x.cx
- #define r_si x.si
- #define r_di x.di
- #define r_ds x.ds
- #define r_es x.es
-
-#elif (DOSX & DOS4GW)
- LOCAL struct DPMI_regs reg;
- LOCAL WORD rm_base_seg, rm_base_sel;
- LOCAL DWORD realBase;
- LOCAL int para_skip = 0;
-
- LOCAL DWORD dpmi_get_real_vector (int intr);
- LOCAL WORD dpmi_real_malloc (int size, WORD *selector);
- LOCAL void dpmi_real_free (WORD selector);
- #define DOS_ADDR(s,o) (((DWORD)(s) << 4) + (WORD)(o))
-
-#else /* real-mode Borland etc. */
- static struct {
- WORD r_ax, r_bx, r_cx, r_dx, r_bp;
- WORD r_si, r_di, r_ds, r_es, r_flags;
- } reg;
-#endif
-
-#ifdef __HIGHC__
- #pragma Alias (pktDrop, "_pktDrop")
- #pragma Alias (pktRxBuf, "_pktRxBuf")
- #pragma Alias (pktTxBuf, "_pktTxBuf")
- #pragma Alias (pktTemp, "_pktTemp")
- #pragma Alias (rxOutOfs, "_rxOutOfs")
- #pragma Alias (rxInOfs, "_rxInOfs")
- #pragma Alias (pktRxEnd, "_pktRxEnd")
- #pragma Alias (PktReceiver,"_PktReceiver")
-#endif
-
-
-PUBLIC PKT_STAT pktStat; /* statistics for packets */
-PUBLIC PKT_INFO pktInfo; /* packet-driver information */
-
-PUBLIC PKT_RX_MODE receiveMode = PDRX_DIRECT;
-PUBLIC ETHER myAddress = { 0, 0, 0, 0, 0, 0 };
-PUBLIC ETHER ethBroadcast = { 255,255,255,255,255,255 };
-
-LOCAL struct { /* internal statistics */
- DWORD tooSmall; /* size < ETH_MIN */
- DWORD tooLarge; /* size > ETH_MAX */
- DWORD badSync; /* count_1 != count_2 */
- DWORD wrongHandle; /* upcall to wrong handle */
- } intStat;
-
-/***************************************************************************/
-
-PUBLIC const char *PktGetErrorStr (int errNum)
-{
- static const char *errStr[] = {
- "",
- "Invalid handle number",
- "No interfaces of specified class found",
- "No interfaces of specified type found",
- "No interfaces of specified number found",
- "Bad packet type specified",
- "Interface does not support multicast",
- "Packet driver cannot terminate",
- "Invalid receiver mode specified",
- "Insufficient memory space",
- "Type previously accessed, and not released",
- "Command out of range, or not implemented",
- "Cannot send packet (usually hardware error)",
- "Cannot change hardware address ( > 1 handle open)",
- "Hardware address has bad length or format",
- "Cannot reset interface (more than 1 handle open)",
- "Bad Check-sum",
- "Bad size",
- "Bad sync" ,
- "Source hit"
- };
-
- if (errNum < 0 || errNum >= DIM(errStr))
- return ("Unknown driver error.");
- return (errStr [errNum]);
-}
-
-/**************************************************************************/
-
-PUBLIC const char *PktGetClassName (WORD class)
-{
- switch (class)
- {
- case PD_ETHER:
- return ("DIX-Ether");
- case PD_PRONET10:
- return ("ProNET-10");
- case PD_IEEE8025:
- return ("IEEE 802.5");
- case PD_OMNINET:
- return ("OmniNet");
- case PD_APPLETALK:
- return ("AppleTalk");
- case PD_SLIP:
- return ("SLIP");
- case PD_STARTLAN:
- return ("StartLAN");
- case PD_ARCNET:
- return ("ArcNet");
- case PD_AX25:
- return ("AX.25");
- case PD_KISS:
- return ("KISS");
- case PD_IEEE8023_2:
- return ("IEEE 802.3 w/802.2 hdr");
- case PD_FDDI8022:
- return ("FDDI w/802.2 hdr");
- case PD_X25:
- return ("X.25");
- case PD_LANstar:
- return ("LANstar");
- case PD_PPP:
- return ("PPP");
- default:
- return ("unknown");
- }
-}
-
-/**************************************************************************/
-
-PUBLIC char const *PktRXmodeStr (PKT_RX_MODE mode)
-{
- static const char *modeStr [] = {
- "Receiver turned off",
- "Receive only directly addressed packets",
- "Receive direct & broadcast packets",
- "Receive direct,broadcast and limited multicast packets",
- "Receive direct,broadcast and all multicast packets",
- "Receive all packets (promiscuouos mode)"
- };
-
- if (mode > DIM(modeStr))
- return ("??");
- return (modeStr [mode-1]);
-}
-
-/**************************************************************************/
-
-LOCAL __inline BOOL PktInterrupt (void)
-{
- BOOL okay;
-
-#if (DOSX & PHARLAP)
- _dx_real_int ((UINT)pktInfo.intr, &reg);
- okay = ((reg.flags & 1) == 0); /* OK if carry clear */
-
-#elif (DOSX & DJGPP)
- __dpmi_int ((int)pktInfo.intr, &reg);
- okay = ((reg.x.flags & 1) == 0);
-
-#elif (DOSX & DOS4GW)
- union REGS r;
- struct SREGS s;
-
- memset (&r, 0, sizeof(r));
- segread (&s);
- r.w.ax = 0x300;
- r.x.ebx = pktInfo.intr;
- r.w.cx = 0;
- s.es = FP_SEG (&reg);
- r.x.edi = FP_OFF (&reg);
- reg.r_flags = 0;
- reg.r_ss = reg.r_sp = 0; /* DPMI host provides stack */
-
- int386x (0x31, &r, &r, &s);
- okay = (!r.w.cflag);
-
-#else
- reg.r_flags = 0;
- intr (pktInfo.intr, (struct REGPACK*)&reg);
- okay = ((reg.r_flags & 1) == 0);
-#endif
-
- if (okay)
- pktInfo.error = NULL;
- else pktInfo.error = PktGetErrorStr (reg.r_dx >> 8);
- return (okay);
-}
-
-/**************************************************************************/
-
-/*
- * Search for packet driver at interrupt 60h through 80h. If ASCIIZ
- * string "PKT DRVR" found at offset 3 in the interrupt handler, return
- * interrupt number, else return zero in pktInfo.intr
- */
-PUBLIC BOOL PktSearchDriver (void)
-{
- BYTE intr = 0x20;
- BOOL found = FALSE;
-
- while (!found && intr < 0xFF)
- {
- static char str[12]; /* 3 + strlen("PKT DRVR") */
- static char pktStr[9] = "PKT DRVR"; /* ASCIIZ string at ofs 3 */
- DWORD rp; /* in interrupt routine */
-
-#if (DOSX & PHARLAP)
- _dx_rmiv_get (intr, &rp);
- ReadRealMem (&str, (REALPTR)rp, sizeof(str));
-
-#elif (DOSX & DJGPP)
- __dpmi_raddr realAdr;
- __dpmi_get_real_mode_interrupt_vector (intr, &realAdr);
- rp = (realAdr.segment << 4) + realAdr.offset16;
- dosmemget (rp, sizeof(str), &str);
-
-#elif (DOSX & DOS4GW)
- rp = dpmi_get_real_vector (intr);
- memcpy (&str, (void*)rp, sizeof(str));
-
-#else
- _fmemcpy (&str, getvect(intr), sizeof(str));
-#endif
-
- found = memcmp (&str[3],&pktStr,sizeof(pktStr)) == 0;
- intr++;
- }
- pktInfo.intr = (found ? intr-1 : 0);
- return (found);
-}
-
-
-/**************************************************************************/
-
-static BOOL PktSetAccess (void)
-{
- reg.r_ax = 0x0200 + pktInfo.class;
- reg.r_bx = 0xFFFF;
- reg.r_dx = 0;
- reg.r_cx = 0;
-
-#if (DOSX & PHARLAP)
- reg.ds = 0;
- reg.esi = 0;
- reg.es = RP_SEG (realBase);
- reg.edi = (WORD) &PktReceiver;
-
-#elif (DOSX & DJGPP)
- reg.x.ds = 0;
- reg.x.si = 0;
- reg.x.es = rm_mem.rm_segment;
- reg.x.di = PktReceiver;
-
-#elif (DOSX & DOS4GW)
- reg.r_ds = 0;
- reg.r_si = 0;
- reg.r_es = rm_base_seg;
- reg.r_di = PktReceiver;
-
-#else
- reg.r_ds = 0;
- reg.r_si = 0;
- reg.r_es = FP_SEG (&PktReceiver);
- reg.r_di = FP_OFF (&PktReceiver);
-#endif
-
- if (!PktInterrupt())
- return (FALSE);
-
- pktInfo.handle = reg.r_ax;
- return (TRUE);
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktReleaseHandle (WORD handle)
-{
- reg.r_ax = 0x0300;
- reg.r_bx = handle;
- return PktInterrupt();
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktTransmit (const void *eth, int len)
-{
- if (len > ETH_MTU)
- return (FALSE);
-
- reg.r_ax = 0x0400; /* Function 4, send pkt */
- reg.r_cx = len; /* total size of frame */
-
-#if (DOSX & DJGPP)
- dosmemput (eth, len, realBase+pktTxBuf);
- reg.x.ds = rm_mem.rm_segment; /* DOS data segment and */
- reg.x.si = pktTxBuf; /* DOS offset to buffer */
-
-#elif (DOSX & DOS4GW)
- memcpy ((void*)(realBase+pktTxBuf), eth, len);
- reg.r_ds = rm_base_seg;
- reg.r_si = pktTxBuf;
-
-#elif (DOSX & PHARLAP)
- memcpy (&pktTxBuf, eth, len);
- reg.r_ds = FP_SEG (&pktTxBuf);
- reg.r_si = FP_OFF (&pktTxBuf);
-
-#else
- reg.r_ds = FP_SEG (eth);
- reg.r_si = FP_OFF (eth);
-#endif
-
- return PktInterrupt();
-}
-
-/**************************************************************************/
-
-#if (DOSX & (DJGPP|DOS4GW))
-LOCAL __inline BOOL CheckElement (RX_ELEMENT *rx)
-#else
-LOCAL __inline BOOL CheckElement (RX_ELEMENT _far *rx)
-#endif
-{
- WORD count_1, count_2;
-
- /*
- * We got an upcall to the same RMCB with wrong handle.
- * This can happen if we failed to release handle at program exit
- */
- if (rx->handle != pktInfo.handle)
- {
- pktInfo.error = "Wrong handle";
- intStat.wrongHandle++;
- PktReleaseHandle (rx->handle);
- return (FALSE);
- }
- count_1 = rx->firstCount;
- count_2 = rx->secondCount;
-
- if (count_1 != count_2)
- {
- pktInfo.error = "Bad sync";
- intStat.badSync++;
- return (FALSE);
- }
- if (count_1 > ETH_MAX)
- {
- pktInfo.error = "Large esize";
- intStat.tooLarge++;
- return (FALSE);
- }
-#if 0
- if (count_1 < ETH_MIN)
- {
- pktInfo.error = "Small esize";
- intStat.tooSmall++;
- return (FALSE);
- }
-#endif
- return (TRUE);
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktTerminHandle (WORD handle)
-{
- reg.r_ax = 0x0500;
- reg.r_bx = handle;
- return PktInterrupt();
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktResetInterface (WORD handle)
-{
- reg.r_ax = 0x0700;
- reg.r_bx = handle;
- return PktInterrupt();
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktSetReceiverMode (PKT_RX_MODE mode)
-{
- if (pktInfo.class == PD_SLIP || pktInfo.class == PD_PPP)
- return (TRUE);
-
- reg.r_ax = 0x1400;
- reg.r_bx = pktInfo.handle;
- reg.r_cx = (WORD)mode;
-
- if (!PktInterrupt())
- return (FALSE);
-
- receiveMode = mode;
- return (TRUE);
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktGetReceiverMode (PKT_RX_MODE *mode)
-{
- reg.r_ax = 0x1500;
- reg.r_bx = pktInfo.handle;
-
- if (!PktInterrupt())
- return (FALSE);
-
- *mode = reg.r_ax;
- return (TRUE);
-}
-
-/**************************************************************************/
-
-static PKT_STAT initialStat; /* statistics at startup */
-static BOOL resetStat = FALSE; /* statistics reset ? */
-
-PUBLIC BOOL PktGetStatistics (WORD handle)
-{
- reg.r_ax = 0x1800;
- reg.r_bx = handle;
-
- if (!PktInterrupt())
- return (FALSE);
-
-#if (DOSX & PHARLAP)
- ReadRealMem (&pktStat, DOS_ADDR(reg.ds,reg.esi), sizeof(pktStat));
-
-#elif (DOSX & DJGPP)
- dosmemget (DOS_ADDR(reg.x.ds,reg.x.si), sizeof(pktStat), &pktStat);
-
-#elif (DOSX & DOS4GW)
- memcpy (&pktStat, (void*)DOS_ADDR(reg.r_ds,reg.r_si), sizeof(pktStat));
-
-#else
- _fmemcpy (&pktStat, MK_FP(reg.r_ds,reg.r_si), sizeof(pktStat));
-#endif
-
- return (TRUE);
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktSessStatistics (WORD handle)
-{
- if (!PktGetStatistics(pktInfo.handle))
- return (FALSE);
-
- if (resetStat)
- {
- pktStat.inPackets -= initialStat.inPackets;
- pktStat.outPackets -= initialStat.outPackets;
- pktStat.inBytes -= initialStat.inBytes;
- pktStat.outBytes -= initialStat.outBytes;
- pktStat.inErrors -= initialStat.inErrors;
- pktStat.outErrors -= initialStat.outErrors;
- pktStat.outErrors -= initialStat.outErrors;
- pktStat.lost -= initialStat.lost;
- }
- return (TRUE);
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktResetStatistics (WORD handle)
-{
- if (!PktGetStatistics(pktInfo.handle))
- return (FALSE);
-
- memcpy (&initialStat, &pktStat, sizeof(initialStat));
- resetStat = TRUE;
- return (TRUE);
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktGetAddress (ETHER *addr)
-{
- reg.r_ax = 0x0600;
- reg.r_bx = pktInfo.handle;
- reg.r_cx = sizeof (*addr);
-
-#if (DOSX & DJGPP)
- reg.x.es = rm_mem.rm_segment;
- reg.x.di = pktTemp;
-#elif (DOSX & DOS4GW)
- reg.r_es = rm_base_seg;
- reg.r_di = pktTemp;
-#else
- reg.r_es = FP_SEG (&pktTemp);
- reg.r_di = FP_OFF (&pktTemp); /* ES:DI = address for result */
-#endif
-
- if (!PktInterrupt())
- return (FALSE);
-
-#if (DOSX & PHARLAP)
- ReadRealMem (addr, realBase + (WORD)&pktTemp, sizeof(*addr));
-
-#elif (DOSX & DJGPP)
- dosmemget (realBase+pktTemp, sizeof(*addr), addr);
-
-#elif (DOSX & DOS4GW)
- memcpy (addr, (void*)(realBase+pktTemp), sizeof(*addr));
-
-#else
- memcpy ((void*)addr, &pktTemp, sizeof(*addr));
-#endif
-
- return (TRUE);
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktSetAddress (const ETHER *addr)
-{
- /* copy addr to real-mode scrath area */
-
-#if (DOSX & PHARLAP)
- WriteRealMem (realBase + (WORD)&pktTemp, (void*)addr, sizeof(*addr));
-
-#elif (DOSX & DJGPP)
- dosmemput (addr, sizeof(*addr), realBase+pktTemp);
-
-#elif (DOSX & DOS4GW)
- memcpy ((void*)(realBase+pktTemp), addr, sizeof(*addr));
-
-#else
- memcpy (&pktTemp, (void*)addr, sizeof(*addr));
-#endif
-
- reg.r_ax = 0x1900;
- reg.r_cx = sizeof (*addr); /* address length */
-
-#if (DOSX & DJGPP)
- reg.x.es = rm_mem.rm_segment; /* DOS offset to param */
- reg.x.di = pktTemp; /* DOS segment to param */
-#elif (DOSX & DOS4GW)
- reg.r_es = rm_base_seg;
- reg.r_di = pktTemp;
-#else
- reg.r_es = FP_SEG (&pktTemp);
- reg.r_di = FP_OFF (&pktTemp);
-#endif
-
- return PktInterrupt();
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktGetDriverInfo (void)
-{
- pktInfo.majVer = 0;
- pktInfo.minVer = 0;
- memset (&pktInfo.name, 0, sizeof(pktInfo.name));
- reg.r_ax = 0x01FF;
- reg.r_bx = 0;
-
- if (!PktInterrupt())
- return (FALSE);
-
- pktInfo.number = reg.r_cx & 0xFF;
- pktInfo.class = reg.r_cx >> 8;
-#if 0
- pktInfo.minVer = reg.r_bx % 10;
- pktInfo.majVer = reg.r_bx / 10;
-#else
- pktInfo.majVer = reg.r_bx; // !!
-#endif
- pktInfo.funcs = reg.r_ax & 0xFF;
- pktInfo.type = reg.r_dx & 0xFF;
-
-#if (DOSX & PHARLAP)
- ReadRealMem (&pktInfo.name, DOS_ADDR(reg.ds,reg.esi), sizeof(pktInfo.name));
-
-#elif (DOSX & DJGPP)
- dosmemget (DOS_ADDR(reg.x.ds,reg.x.si), sizeof(pktInfo.name), &pktInfo.name);
-
-#elif (DOSX & DOS4GW)
- memcpy (&pktInfo.name, (void*)DOS_ADDR(reg.r_ds,reg.r_si), sizeof(pktInfo.name));
-
-#else
- _fmemcpy (&pktInfo.name, MK_FP(reg.r_ds,reg.r_si), sizeof(pktInfo.name));
-#endif
- return (TRUE);
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktGetDriverParam (void)
-{
- reg.r_ax = 0x0A00;
-
- if (!PktInterrupt())
- return (FALSE);
-
-#if (DOSX & PHARLAP)
- ReadRealMem (&pktInfo.majVer, DOS_ADDR(reg.es,reg.edi), PKT_PARAM_SIZE);
-
-#elif (DOSX & DJGPP)
- dosmemget (DOS_ADDR(reg.x.es,reg.x.di), PKT_PARAM_SIZE, &pktInfo.majVer);
-
-#elif (DOSX & DOS4GW)
- memcpy (&pktInfo.majVer, (void*)DOS_ADDR(reg.r_es,reg.r_di), PKT_PARAM_SIZE);
-
-#else
- _fmemcpy (&pktInfo.majVer, MK_FP(reg.r_es,reg.r_di), PKT_PARAM_SIZE);
-#endif
- return (TRUE);
-}
-
-/**************************************************************************/
-
-#if (DOSX & PHARLAP)
- PUBLIC int PktReceive (BYTE *buf, int max)
- {
- WORD inOfs = *rxInOfsFp;
- WORD outOfs = *rxOutOfsFp;
-
- if (outOfs != inOfs)
- {
- RX_ELEMENT _far *head = (RX_ELEMENT _far*)(protBase+outOfs);
- int size, len = max;
-
- if (CheckElement(head))
- {
- size = min (head->firstCount, sizeof(RX_ELEMENT));
- len = min (size, max);
- _fmemcpy (buf, &head->destin, len);
- }
- else
- size = -1;
-
- outOfs += sizeof (RX_ELEMENT);
- if (outOfs > LAST_RX_BUF)
- outOfs = FIRST_RX_BUF;
- *rxOutOfsFp = outOfs;
- return (size);
- }
- return (0);
- }
-
- PUBLIC void PktQueueBusy (BOOL busy)
- {
- *rxOutOfsFp = busy ? (*rxInOfsFp + sizeof(RX_ELEMENT)) : *rxInOfsFp;
- if (*rxOutOfsFp > LAST_RX_BUF)
- *rxOutOfsFp = FIRST_RX_BUF;
- *(DWORD _far*)(protBase + (WORD)&pktDrop) = 0;
- }
-
- PUBLIC WORD PktBuffersUsed (void)
- {
- WORD inOfs = *rxInOfsFp;
- WORD outOfs = *rxOutOfsFp;
-
- if (inOfs >= outOfs)
- return (inOfs - outOfs) / sizeof(RX_ELEMENT);
- return (NUM_RX_BUF - (outOfs - inOfs) / sizeof(RX_ELEMENT));
- }
-
- PUBLIC DWORD PktRxDropped (void)
- {
- return (*(DWORD _far*)(protBase + (WORD)&pktDrop));
- }
-
-#elif (DOSX & DJGPP)
- PUBLIC int PktReceive (BYTE *buf, int max)
- {
- WORD ofs = _farpeekw (_dos_ds, realBase+rxOutOfs);
-
- if (ofs != _farpeekw (_dos_ds, realBase+rxInOfs))
- {
- RX_ELEMENT head;
- int size, len = max;
-
- head.firstCount = _farpeekw (_dos_ds, realBase+ofs);
- head.secondCount = _farpeekw (_dos_ds, realBase+ofs+2);
- head.handle = _farpeekw (_dos_ds, realBase+ofs+4);
-
- if (CheckElement(&head))
- {
- size = min (head.firstCount, sizeof(RX_ELEMENT));
- len = min (size, max);
- dosmemget (realBase+ofs+6, len, buf);
- }
- else
- size = -1;
-
- ofs += sizeof (RX_ELEMENT);
- if (ofs > LAST_RX_BUF)
- _farpokew (_dos_ds, realBase+rxOutOfs, FIRST_RX_BUF);
- else _farpokew (_dos_ds, realBase+rxOutOfs, ofs);
- return (size);
- }
- return (0);
- }
-
- PUBLIC void PktQueueBusy (BOOL busy)
- {
- WORD ofs;
-
- disable();
- ofs = _farpeekw (_dos_ds, realBase+rxInOfs);
- if (busy)
- ofs += sizeof (RX_ELEMENT);
-
- if (ofs > LAST_RX_BUF)
- _farpokew (_dos_ds, realBase+rxOutOfs, FIRST_RX_BUF);
- else _farpokew (_dos_ds, realBase+rxOutOfs, ofs);
- _farpokel (_dos_ds, realBase+pktDrop, 0UL);
- enable();
- }
-
- PUBLIC WORD PktBuffersUsed (void)
- {
- WORD inOfs, outOfs;
-
- disable();
- inOfs = _farpeekw (_dos_ds, realBase+rxInOfs);
- outOfs = _farpeekw (_dos_ds, realBase+rxOutOfs);
- enable();
- if (inOfs >= outOfs)
- return (inOfs - outOfs) / sizeof(RX_ELEMENT);
- return (NUM_RX_BUF - (outOfs - inOfs) / sizeof(RX_ELEMENT));
- }
-
- PUBLIC DWORD PktRxDropped (void)
- {
- return _farpeekl (_dos_ds, realBase+pktDrop);
- }
-
-#elif (DOSX & DOS4GW)
- PUBLIC int PktReceive (BYTE *buf, int max)
- {
- WORD ofs = *(WORD*) (realBase+rxOutOfs);
-
- if (ofs != *(WORD*) (realBase+rxInOfs))
- {
- RX_ELEMENT head;
- int size, len = max;
-
- head.firstCount = *(WORD*) (realBase+ofs);
- head.secondCount = *(WORD*) (realBase+ofs+2);
- head.handle = *(WORD*) (realBase+ofs+4);
-
- if (CheckElement(&head))
- {
- size = min (head.firstCount, sizeof(RX_ELEMENT));
- len = min (size, max);
- memcpy (buf, (const void*)(realBase+ofs+6), len);
- }
- else
- size = -1;
-
- ofs += sizeof (RX_ELEMENT);
- if (ofs > LAST_RX_BUF)
- *(WORD*) (realBase+rxOutOfs) = FIRST_RX_BUF;
- else *(WORD*) (realBase+rxOutOfs) = ofs;
- return (size);
- }
- return (0);
- }
-
- PUBLIC void PktQueueBusy (BOOL busy)
- {
- WORD ofs;
-
- _disable();
- ofs = *(WORD*) (realBase+rxInOfs);
- if (busy)
- ofs += sizeof (RX_ELEMENT);
-
- if (ofs > LAST_RX_BUF)
- *(WORD*) (realBase+rxOutOfs) = FIRST_RX_BUF;
- else *(WORD*) (realBase+rxOutOfs) = ofs;
- *(DWORD*) (realBase+pktDrop) = 0UL;
- _enable();
- }
-
- PUBLIC WORD PktBuffersUsed (void)
- {
- WORD inOfs, outOfs;
-
- _disable();
- inOfs = *(WORD*) (realBase+rxInOfs);
- outOfs = *(WORD*) (realBase+rxOutOfs);
- _enable();
- if (inOfs >= outOfs)
- return (inOfs - outOfs) / sizeof(RX_ELEMENT);
- return (NUM_RX_BUF - (outOfs - inOfs) / sizeof(RX_ELEMENT));
- }
-
- PUBLIC DWORD PktRxDropped (void)
- {
- return *(DWORD*) (realBase+pktDrop);
- }
-
-#else /* real-mode small/large model */
-
- PUBLIC int PktReceive (BYTE *buf, int max)
- {
- if (rxOutOfs != rxInOfs)
- {
- RX_ELEMENT far *head = (RX_ELEMENT far*) MK_FP (_DS,rxOutOfs);
- int size, len = max;
-
- if (CheckElement(head))
- {
- size = min (head->firstCount, sizeof(RX_ELEMENT));
- len = min (size, max);
- _fmemcpy (buf, &head->destin, len);
- }
- else
- size = -1;
-
- rxOutOfs += sizeof (RX_ELEMENT);
- if (rxOutOfs > LAST_RX_BUF)
- rxOutOfs = FIRST_RX_BUF;
- return (size);
- }
- return (0);
- }
-
- PUBLIC void PktQueueBusy (BOOL busy)
- {
- rxOutOfs = busy ? (rxInOfs + sizeof(RX_ELEMENT)) : rxInOfs;
- if (rxOutOfs > LAST_RX_BUF)
- rxOutOfs = FIRST_RX_BUF;
- pktDrop = 0L;
- }
-
- PUBLIC WORD PktBuffersUsed (void)
- {
- WORD inOfs = rxInOfs;
- WORD outOfs = rxOutOfs;
-
- if (inOfs >= outOfs)
- return ((inOfs - outOfs) / sizeof(RX_ELEMENT));
- return (NUM_RX_BUF - (outOfs - inOfs) / sizeof(RX_ELEMENT));
- }
-
- PUBLIC DWORD PktRxDropped (void)
- {
- return (pktDrop);
- }
-#endif
-
-/**************************************************************************/
-
-LOCAL __inline void PktFreeMem (void)
-{
-#if (DOSX & PHARLAP)
- if (realSeg)
- {
- _dx_real_free (realSeg);
- realSeg = 0;
- }
-#elif (DOSX & DJGPP)
- if (rm_mem.rm_segment)
- {
- unsigned ofs; /* clear the DOS-mem to prevent further upcalls */
-
- for (ofs = 0; ofs < 16 * rm_mem.size / 4; ofs += 4)
- _farpokel (_dos_ds, realBase + ofs, 0);
- _go32_dpmi_free_dos_memory (&rm_mem);
- rm_mem.rm_segment = 0;
- }
-#elif (DOSX & DOS4GW)
- if (rm_base_sel)
- {
- dpmi_real_free (rm_base_sel);
- rm_base_sel = 0;
- }
-#endif
-}
-
-/**************************************************************************/
-
-PUBLIC BOOL PktExitDriver (void)
-{
- if (pktInfo.handle)
- {
- if (!PktSetReceiverMode(PDRX_BROADCAST))
- PUTS ("Error restoring receiver mode.");
-
- if (!PktReleaseHandle(pktInfo.handle))
- PUTS ("Error releasing PKT-DRVR handle.");
-
- PktFreeMem();
- pktInfo.handle = 0;
- }
-
- if (pcap_pkt_debug >= 1)
- printf ("Internal stats: too-small %lu, too-large %lu, bad-sync %lu, "
- "wrong-handle %lu\n",
- intStat.tooSmall, intStat.tooLarge,
- intStat.badSync, intStat.wrongHandle);
- return (TRUE);
-}
-
-#if (DOSX & (DJGPP|DOS4GW))
-static void dump_pkt_stub (void)
-{
- int i;
-
- fprintf (stderr, "PktReceiver %lu, pkt_stub[PktReceiver] =\n",
- PktReceiver);
- for (i = 0; i < 15; i++)
- fprintf (stderr, "%02X, ", real_stub_array[i+PktReceiver]);
- fputs ("\n", stderr);
-}
-#endif
-
-/*
- * Front end initialization routine
- */
-PUBLIC BOOL PktInitDriver (PKT_RX_MODE mode)
-{
- PKT_RX_MODE rxMode;
- BOOL writeInfo = (pcap_pkt_debug >= 3);
-
- pktInfo.quiet = (pcap_pkt_debug < 3);
-
-#if (DOSX & PHARLAP) && defined(__HIGHC__)
- if (_mwenv != 2)
- {
- fprintf (stderr, "Only Pharlap DOS extender supported.\n");
- return (FALSE);
- }
-#endif
-
-#if (DOSX & PHARLAP) && defined(__WATCOMC__)
- if (_Extender != 1)
- {
- fprintf (stderr, "Only DOS4GW style extenders supported.\n");
- return (FALSE);
- }
-#endif
-
- if (!PktSearchDriver())
- {
- PUTS ("Packet driver not found.");
- PktFreeMem();
- return (FALSE);
- }
-
- if (!PktGetDriverInfo())
- {
- PUTS ("Error getting pkt-drvr information.");
- PktFreeMem();
- return (FALSE);
- }
-
-#if (DOSX & PHARLAP)
- if (RealCopy((ULONG)&rxOutOfs, (ULONG)&pktRxEnd,
- &realBase, &protBase, (USHORT*)&realSeg))
- {
- rxOutOfsFp = (WORD _far *) (protBase + (WORD) &rxOutOfs);
- rxInOfsFp = (WORD _far *) (protBase + (WORD) &rxInOfs);
- *rxOutOfsFp = FIRST_RX_BUF;
- *rxInOfsFp = FIRST_RX_BUF;
- }
- else
- {
- PUTS ("Cannot allocate real-mode stub.");
- return (FALSE);
- }
-
-#elif (DOSX & (DJGPP|DOS4GW))
- if (sizeof(real_stub_array) > 0xFFFF)
- {
- fprintf (stderr, "`real_stub_array[]' too big.\n");
- return (FALSE);
- }
-#if (DOSX & DJGPP)
- rm_mem.size = (sizeof(real_stub_array) + 15) / 16;
-
- if (_go32_dpmi_allocate_dos_memory(&rm_mem) || rm_mem.rm_offset != 0)
- {
- PUTS ("real-mode init failed.");
- return (FALSE);
- }
- realBase = (rm_mem.rm_segment << 4);
- dosmemput (&real_stub_array, sizeof(real_stub_array), realBase);
- _farpokel (_dos_ds, realBase+rxOutOfs, FIRST_RX_BUF);
- _farpokel (_dos_ds, realBase+rxInOfs, FIRST_RX_BUF);
-
-#elif (DOSX & DOS4GW)
- rm_base_seg = dpmi_real_malloc (sizeof(real_stub_array), &rm_base_sel);
- if (!rm_base_seg)
- {
- PUTS ("real-mode init failed.");
- return (FALSE);
- }
- realBase = (rm_base_seg << 4);
- memcpy ((void*)realBase, &real_stub_array, sizeof(real_stub_array));
- *(WORD*) (realBase+rxOutOfs) = FIRST_RX_BUF;
- *(WORD*) (realBase+rxInOfs) = FIRST_RX_BUF;
-
-#endif
- {
- int pushf = PktReceiver;
-
- while (real_stub_array[pushf++] != 0x9C && /* pushf */
- real_stub_array[pushf] != 0xFA) /* cli */
- {
- if (++para_skip > 16)
- {
- fprintf (stderr, "Something wrong with `pkt_stub.inc'.\n");
- para_skip = 0;
- dump_pkt_stub();
- return (FALSE);
- }
- }
- if (*(WORD*)(real_stub_array + offsetof(PktRealStub,_dummy)) != 0xB800)
- {
- fprintf (stderr, "`real_stub_array[]' is misaligned.\n");
- return (FALSE);
- }
- }
-
- if (pcap_pkt_debug > 2)
- dump_pkt_stub();
-
-#else
- rxOutOfs = FIRST_RX_BUF;
- rxInOfs = FIRST_RX_BUF;
-#endif
-
- if (!PktSetAccess())
- {
- PUTS ("Error setting pkt-drvr access.");
- PktFreeMem();
- return (FALSE);
- }
-
- if (!PktGetAddress(&myAddress))
- {
- PUTS ("Error fetching adapter address.");
- PktFreeMem();
- return (FALSE);
- }
-
- if (!PktSetReceiverMode(mode))
- {
- PUTS ("Error setting receiver mode.");
- PktFreeMem();
- return (FALSE);
- }
-
- if (!PktGetReceiverMode(&rxMode))
- {
- PUTS ("Error getting receiver mode.");
- PktFreeMem();
- return (FALSE);
- }
-
- if (writeInfo)
- printf ("Pkt-driver information:\n"
- " Version : %d.%d\n"
- " Name : %.15s\n"
- " Class : %u (%s)\n"
- " Type : %u\n"
- " Number : %u\n"
- " Funcs : %u\n"
- " Intr : %Xh\n"
- " Handle : %u\n"
- " Extended : %s\n"
- " Hi-perf : %s\n"
- " RX mode : %s\n"
- " Eth-addr : %02X:%02X:%02X:%02X:%02X:%02X\n",
-
- pktInfo.majVer, pktInfo.minVer, pktInfo.name,
- pktInfo.class, PktGetClassName(pktInfo.class),
- pktInfo.type, pktInfo.number,
- pktInfo.funcs, pktInfo.intr, pktInfo.handle,
- pktInfo.funcs == 2 || pktInfo.funcs == 6 ? "Yes" : "No",
- pktInfo.funcs == 5 || pktInfo.funcs == 6 ? "Yes" : "No",
- PktRXmodeStr(rxMode),
- myAddress[0], myAddress[1], myAddress[2],
- myAddress[3], myAddress[4], myAddress[5]);
-
-#if defined(DEBUG) && (DOSX & PHARLAP)
- if (writeInfo)
- {
- DWORD rAdr = realBase + (WORD)&PktReceiver;
- unsigned sel, ofs;
-
- printf ("\nReceiver at %04X:%04X\n", RP_SEG(rAdr), RP_OFF(rAdr));
- printf ("Realbase = %04X:%04X\n", RP_SEG(realBase),RP_OFF(realBase));
-
- sel = _FP_SEG (protBase);
- ofs = _FP_OFF (protBase);
- printf ("Protbase = %04X:%08X\n", sel,ofs);
- printf ("RealSeg = %04X\n", realSeg);
-
- sel = _FP_SEG (rxOutOfsFp);
- ofs = _FP_OFF (rxOutOfsFp);
- printf ("rxOutOfsFp = %04X:%08X\n", sel,ofs);
-
- sel = _FP_SEG (rxInOfsFp);
- ofs = _FP_OFF (rxInOfsFp);
- printf ("rxInOfsFp = %04X:%08X\n", sel,ofs);
-
- printf ("Ready: *rxOutOfsFp = %04X *rxInOfsFp = %04X\n",
- *rxOutOfsFp, *rxInOfsFp);
-
- PktQueueBusy (TRUE);
- printf ("Busy: *rxOutOfsFp = %04X *rxInOfsFp = %04X\n",
- *rxOutOfsFp, *rxInOfsFp);
- }
-#endif
-
- memset (&pktStat, 0, sizeof(pktStat)); /* clear statistics */
- PktQueueBusy (TRUE);
- return (TRUE);
-}
-
-
-/*
- * DPMI functions only for Watcom + DOS4GW extenders
- */
-#if (DOSX & DOS4GW)
-LOCAL DWORD dpmi_get_real_vector (int intr)
-{
- union REGS r;
-
- r.x.eax = 0x200;
- r.x.ebx = (DWORD) intr;
- int386 (0x31, &r, &r);
- return ((r.w.cx << 4) + r.w.dx);
-}
-
-LOCAL WORD dpmi_real_malloc (int size, WORD *selector)
-{
- union REGS r;
-
- r.x.eax = 0x0100; /* DPMI allocate DOS memory */
- r.x.ebx = (size + 15) / 16; /* Number of paragraphs requested */
- int386 (0x31, &r, &r);
- if (r.w.cflag & 1)
- return (0);
-
- *selector = r.w.dx;
- return (r.w.ax); /* Return segment address */
-}
-
-LOCAL void dpmi_real_free (WORD selector)
-{
- union REGS r;
-
- r.x.eax = 0x101; /* DPMI free DOS memory */
- r.x.ebx = selector; /* Selector to free */
- int386 (0x31, &r, &r);
-}
-#endif
-
-
-#if defined(DOSX) && (DOSX & PHARLAP)
-/*
- * Description:
- * This routine allocates conventional memory for the specified block
- * of code (which must be within the first 64K of the protected mode
- * program segment) and copies the code to it.
- *
- * The caller should free up the conventional memory block when it
- * is done with the conventional memory.
- *
- * NOTE THIS ROUTINE REQUIRES 386|DOS-EXTENDER 3.0 OR LATER.
- *
- * Calling arguments:
- * start_offs start of real mode code in program segment
- * end_offs 1 byte past end of real mode code in program segment
- * real_basep returned; real mode ptr to use as a base for the
- * real mode code (eg, to get the real mode FAR
- * addr of a function foo(), take
- * real_basep + (ULONG) foo).
- * This pointer is constructed such that
- * offsets within the real mode segment are
- * the same as the link-time offsets in the
- * protected mode program segment
- * prot_basep returned; prot mode ptr to use as a base for getting
- * to the conventional memory, also constructed
- * so that adding the prot mode offset of a
- * function or variable to the base gets you a
- * ptr to the function or variable in the
- * conventional memory block.
- * rmem_adrp returned; real mode para addr of allocated
- * conventional memory block, to be used to free
- * up the conventional memory when done. DO NOT
- * USE THIS TO CONSTRUCT A REAL MODE PTR, USE
- * REAL_BASEP INSTEAD SO THAT OFFSETS WORK OUT
- * CORRECTLY.
- *
- * Returned values:
- * 0 if error
- * 1 if success
- */
-int RealCopy (ULONG start_offs,
- ULONG end_offs,
- REALPTR *real_basep,
- FARPTR *prot_basep,
- USHORT *rmem_adrp)
-{
- ULONG rm_base; /* base real mode para addr for accessing */
- /* allocated conventional memory */
- UCHAR *source; /* source pointer for copy */
- FARPTR destin; /* destination pointer for copy */
- ULONG len; /* number of bytes to copy */
- ULONG temp;
- USHORT stemp;
-
- /* First check for valid inputs
- */
- if (start_offs >= end_offs || end_offs > 0x10000)
- return (FALSE);
-
- /* Round start_offs down to a paragraph (16-byte) boundary so we can set up
- * the real mode pointer easily. Round up end_offs to make sure we allocate
- * enough paragraphs
- */
- start_offs &= ~15;
- end_offs = (15 + (end_offs << 4)) >> 4;
-
- /* Allocate the conventional memory for our real mode code. Remember to
- * round byte count UP to 16-byte paragraph size. We alloc it
- * above the DOS data buffer so both the DOS data buffer and the appl
- * conventional mem block can still be resized.
- *
- * First just try to alloc it; if we can't get it, shrink the appl mem
- * block down to the minimum, try to alloc the memory again, then grow the
- * appl mem block back to the maximum. (Don't try to shrink the DOS data
- * buffer to free conventional memory; it wouldn't be good for this routine
- * to have the possible side effect of making file I/O run slower.)
- */
- len = ((end_offs - start_offs) + 15) >> 4;
- if (_dx_real_above(len, rmem_adrp, &stemp) != _DOSE_NONE)
- {
- if (_dx_cmem_usage(0, 0, &temp, &temp) != _DOSE_NONE)
- return (FALSE);
-
- if (_dx_real_above(len, rmem_adrp, &stemp) != _DOSE_NONE)
- *rmem_adrp = 0;
-
- if (_dx_cmem_usage(0, 1, &temp, &temp) != _DOSE_NONE)
- {
- if (*rmem_adrp != 0)
- _dx_real_free (*rmem_adrp);
- return (FALSE);
- }
-
- if (*rmem_adrp == 0)
- return (FALSE);
- }
-
- /* Construct real mode & protected mode pointers to access the allocated
- * memory. Note we know start_offs is aligned on a paragraph (16-byte)
- * boundary, because we rounded it down.
- *
- * We make the offsets come out rights by backing off the real mode selector
- * by start_offs.
- */
- rm_base = ((ULONG) *rmem_adrp) - (start_offs >> 4);
- RP_SET (*real_basep, 0, rm_base);
- FP_SET (*prot_basep, rm_base << 4, SS_DOSMEM);
-
- /* Copy the real mode code/data to the allocated memory
- */
- source = (UCHAR *) start_offs;
- destin = *prot_basep;
- FP_SET (destin, FP_OFF(*prot_basep) + start_offs, FP_SEL(*prot_basep));
- len = end_offs - start_offs;
- WriteFarMem (destin, source, len);
-
- return (TRUE);
-}
-#endif /* DOSX && (DOSX & PHARLAP) */
diff --git a/contrib/libpcap/msdos/pktdrvr.h b/contrib/libpcap/msdos/pktdrvr.h
deleted file mode 100644
index 50b7b4b..0000000
--- a/contrib/libpcap/msdos/pktdrvr.h
+++ /dev/null
@@ -1,153 +0,0 @@
-#ifndef __PKTDRVR_H
-#define __PKTDRVR_H
-
-#define PUBLIC
-#define LOCAL static
-
-#define RX_BUF_SIZE ETH_MTU /* buffer size variables. NB !! */
-#define TX_BUF_SIZE ETH_MTU /* must be same as in pkt_rx*.* */
-
-#ifdef __HIGHC__
-#pragma Off(Align_members)
-#else
-#pragma pack(1)
-#endif
-
-typedef enum { /* Packet-driver classes */
- PD_ETHER = 1,
- PD_PRONET10 = 2,
- PD_IEEE8025 = 3,
- PD_OMNINET = 4,
- PD_APPLETALK = 5,
- PD_SLIP = 6,
- PD_STARTLAN = 7,
- PD_ARCNET = 8,
- PD_AX25 = 9,
- PD_KISS = 10,
- PD_IEEE8023_2 = 11,
- PD_FDDI8022 = 12,
- PD_X25 = 13,
- PD_LANstar = 14,
- PD_PPP = 18
- } PKT_CLASS;
-
-typedef enum { /* Packet-driver receive modes */
- PDRX_OFF = 1, /* turn off receiver */
- PDRX_DIRECT, /* receive only to this interface */
- PDRX_BROADCAST, /* DIRECT + broadcast packets */
- PDRX_MULTICAST1, /* BROADCAST + limited multicast */
- PDRX_MULTICAST2, /* BROADCAST + all multicast */
- PDRX_ALL_PACKETS, /* receive all packets on network */
- } PKT_RX_MODE;
-
-typedef struct {
- char type[8];
- char len;
- } PKT_FRAME;
-
-
-typedef struct {
- BYTE class; /* = 1 for DEC/Interl/Xerox Ethernet */
- BYTE number; /* = 0 for single LAN adapter */
- WORD type; /* = 13 for 3C523 */
- BYTE funcs; /* Basic/Extended/HiPerf functions */
- WORD intr; /* user interrupt vector number */
- WORD handle; /* Handle associated with session */
- BYTE name [15]; /* Name of adapter interface,ie.3C523*/
- BOOL quiet; /* (don't) print errors to stdout */
- const char *error; /* address of error string */
- BYTE majVer; /* Major driver implementation ver. */
- BYTE minVer; /* Minor driver implementation ver. */
- BYTE dummyLen; /* length of following data */
- WORD MAClength; /* HiPerformance data, N/A */
- WORD MTU; /* HiPerformance data, N/A */
- WORD multicast; /* HiPerformance data, N/A */
- WORD rcvrBuffers; /* valid for */
- WORD UMTbufs; /* High Performance drivers only */
- WORD postEOIintr; /* Usage ?? */
- } PKT_INFO;
-
-#define PKT_PARAM_SIZE 14 /* members majVer - postEOIintr */
-
-
-typedef struct {
- DWORD inPackets; /* # of packets received */
- DWORD outPackets; /* # of packets transmitted */
- DWORD inBytes; /* # of bytes received */
- DWORD outBytes; /* # of bytes transmitted */
- DWORD inErrors; /* # of reception errors */
- DWORD outErrors; /* # of transmission errors */
- DWORD lost; /* # of packets lost (RX) */
- } PKT_STAT;
-
-
-typedef struct {
- ETHER destin;
- ETHER source;
- WORD proto;
- BYTE data [TX_BUF_SIZE];
- } TX_ELEMENT;
-
-typedef struct {
- WORD firstCount; /* # of bytes on 1st */
- WORD secondCount; /* and 2nd upcall */
- WORD handle; /* instance that upcalled */
- ETHER destin; /* E-net destination address */
- ETHER source; /* E-net source address */
- WORD proto; /* protocol number */
- BYTE data [RX_BUF_SIZE];
- } RX_ELEMENT;
-
-
-#ifdef __HIGHC__
-#pragma pop(Align_members)
-#else
-#pragma pack()
-#endif
-
-
-/*
- * Prototypes for publics
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern PKT_STAT pktStat; /* statistics for packets */
-extern PKT_INFO pktInfo; /* packet-driver information */
-
-extern PKT_RX_MODE receiveMode;
-extern ETHER myAddress, ethBroadcast;
-
-extern BOOL PktInitDriver (PKT_RX_MODE mode);
-extern BOOL PktExitDriver (void);
-
-extern const char *PktGetErrorStr (int errNum);
-extern const char *PktGetClassName (WORD class);
-extern const char *PktRXmodeStr (PKT_RX_MODE mode);
-extern BOOL PktSearchDriver (void);
-extern int PktReceive (BYTE *buf, int max);
-extern BOOL PktTransmit (const void *eth, int len);
-extern DWORD PktRxDropped (void);
-extern BOOL PktReleaseHandle (WORD handle);
-extern BOOL PktTerminHandle (WORD handle);
-extern BOOL PktResetInterface (WORD handle);
-extern BOOL PktSetReceiverMode(PKT_RX_MODE mode);
-extern BOOL PktGetReceiverMode(PKT_RX_MODE *mode);
-extern BOOL PktGetStatistics (WORD handle);
-extern BOOL PktSessStatistics (WORD handle);
-extern BOOL PktResetStatistics(WORD handle);
-extern BOOL PktGetAddress (ETHER *addr);
-extern BOOL PktSetAddress (const ETHER *addr);
-extern BOOL PktGetDriverInfo (void);
-extern BOOL PktGetDriverParam (void);
-extern void PktQueueBusy (BOOL busy);
-extern WORD PktBuffersUsed (void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __PKTDRVR_H */
-
diff --git a/contrib/libpcap/msdos/readme.dos b/contrib/libpcap/msdos/readme.dos
deleted file mode 100644
index 02ef1f7..0000000
--- a/contrib/libpcap/msdos/readme.dos
+++ /dev/null
@@ -1,162 +0,0 @@
-@(#) $Header: /tcpdump/master/libpcap/msdos/readme.dos,v 1.3 2004-12-19 19:47:01 guy Exp $ (LBL)
-
-libpcap for DOS
----------------
-
-This file contains some notes on building and using libpcap for MS-DOS.
-Look in `README' and `pcap.man' for usage and details. These targets are
-supported:
-
- - Borland C 4.0+ small or large model.
- - Metaware HighC 3.1+ with PharLap DOS-extender
- - GNU C 2.7+ with djgpp 2.01+ DOS extender
- - Watcom C 11.x with DOS4GW extender
-
-Note: the files in the libpcap.zip contains short trucated filenames.
- So for djgpp to work with these, disable the use of long file names by
- setting "LFN=n" in the environment.
-
-Files specific to DOS are pcap-dos.[ch] and the assembly and C files in
-the MSDOS sub-directory. Remember to built lipcap libraries from the top
-install directory. And not from the MSDOS sub-directory.
-
-Note for djgpp users:
- If you got the libpcap from the official site www.tcpdump, then that
- distribution does NOT contain any sources for building 32-bit drivers.
- Instead get the full version at
- http://www.bgnett.no/~giva/pcap/libpcap.zip
-
- and set "USE_32BIT_DRIVERS = 1" in msdos\common.dj.
-
-
-
-Requirements
-------------
-
-DOS-libpcap currently only works reliably with a real-mode Ethernet packet-
-driver. This driver must be installed prior to using any program (e.g.
-tcpdump) compiled with libpcap. Work is underway to implement protected-
-mode drivers for 32-bit targets (djgpp only). The 3Com 3c509 driver is
-working almost perfectly. Due to lack of LAN-cards, I've not had the
-opportunity to test other drivers. These 32-bit drivers are modified
-Linux drivers.
-
-
-Required packages
------------------
-
-The following packages and tools must be present for all targets.
-
-1. Watt-32 tcp/ip library. This library is *not* used to send or
- receive network data. It's mostly used to access the 'hosts'
- file and other <netdb.h> features. Get 'watt32s*.zip' at:
-
- http://www.bgnett.no/~giva/
-
-2. Exception handler and disassember library (libexc.a) is needed if
- "USE_EXCEPT = 1" in common.dj. Available at:
-
- http://www.bgnett.no/~giva/misc/exc_dx07.zip
-
-3. Flex & Bison is used to generate parser for the filter handler
- pcap_compile:
-
- ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/flx254b.zip
- ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsn128b.zip
-
-4. NASM assembler v 0.98 or later is required when building djgpp and
- Watcom targets:
-
- ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2tk/nasm098p.zip
-
-5. sed (Stream Editor) is required for doing `make depend'.
- It's available at
- ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/sed*.zip
-
- A touch tool to update the time-stamp of a file. E.g.
- ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/grep*.zip
-
-6. For djgpp rm.exe and cp.exe are required. These should already be
- part of your djgpp installation. Also required (experimental at the
- time) for djgpp is DLX 2.91 or later. This tool is for the generation
- of dynamically loadable modules.
-
-
-Compiling libpcap
------------------
-
-Follow these steps in building libpcap:
-
-1. Make sure you've installed Watt-32 properly (see it's `INSTALL' file).
- During that installation a environment variable `WATT_ROOT' is set.
- This variable is used for building libpcap also (`WATT_INC' is
- deducted from `WATT_ROOT'). djgpp users should also define environment
- variables `C_INCLUDE_PATH' and `LIBRARY_PATH' to point to the include
- directory and library directory respectively. E.g. put this in your
- AUTOEXEC.BAT:
- set C_INCLUDE_PATH=c:/net/watt/inc
- set LIBRARY_PATH=c:/net/watt/lib
-
-2. Revise the msdos/common.dj file for your djgpp/gcc installation;
- - change the value of `GCCLIB' to match location of libgcc.a.
- - set `USE_32BIT_DRIVERS = 1' to build 32-bit driver objects.
-
-
-3. Build pcap by using appropriate makefile. For djgpp, use:
- `make -f msdos/makefile.dj' (i.e. GNU `make')
-
- For a Watcom target say:
- `wmake -f msdos\makefile.wc'
-
- For a Borland target say:
- `maker -f msdos\Makefile pcap_bc.lib' (Borland's `maker.exe')
-
- And for a HighC/Pharlap target say:
- `maker -f msdos\Makefile pcap_hc.lib' (Borland's `maker.exe')
-
- You might like to change some `CFLAGS' -- only `DEBUG' define currently
- have any effect. It shows a rotating "fan" in upper right corner of
- screen. Remove `DEBUG' if you don't like it. You could add
- `-fomit-frame-pointer' to `CFLAGS' to speed up the generated code.
- But note, this makes debugging and crash-traceback difficult. Only
- add it if you're fully confident your application is 100% stable.
-
- Note: Code in `USE_NDIS2' does not work at the moment.
-
-4. The resulting libraries are put in current directory. There's no
- test-program for `libpcap'. Linking the library with `tcpdump' is
- the ultimate test anyway.
-
-
-
-Extensions to libpcap
----------------------
-
-I've included some extra functions to DOS-libpcap:
-
- `pcap_config_hook (const char *name, const char *value)'
-
- Allows an application to set values of internal libpcap variables.
- `name' is typically a left-side keyword with an associated `value'
- that is called from application's configure process (see tcpdump's
- config.c file). libpcap keeps a set of tables that are searched for
- a name/value match. Currently only used to set debug-levels and
- parameters for the 32-bit network drivers.
-
- `pcap_set_wait (pcap_t *, void (*)(void), int)' :
-
- Only effective when reading offline traffic from dump-files.
- Function `pcap_offline_read()' will wait (and optionally yield)
- before printing next packet. This will simulate the pace the packets
- where actually recorded.
-
-
-
-Happy sniffing !
-
-
-Gisle Vanem <giva@bgnett.no>
- <gvanem@broadpark.no>
-
-October 1999, 2004
-
diff --git a/contrib/libpcap/org.tcpdump.chmod_bpf.plist b/contrib/libpcap/org.tcpdump.chmod_bpf.plist
deleted file mode 100644
index 8ad6852..0000000
--- a/contrib/libpcap/org.tcpdump.chmod_bpf.plist
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>Label</key>
- <string>org.tcpdump.chmod_bpf</string>
- <key>RunAtLoad</key>
- <true/>
- <key>Program</key>
- <string>/usr/local/bin/chmod_bpf</string>
- <key>ProgramArguments</key>
- <array>
- <string>/usr/local/bin/chmod_bpf</string>
- </array>
-</dict>
-</plist>
OpenPOWER on IntegriCloud