Add a test program for the open, close, and filter compile/set code paths.

This is to test for both libpcap bugs *and* Valgrind bugs; Valgrind on
OS X (and probably other systems using BPF) and Linux reports bogus
errors when setting a filter (because it blindly checks that the
*entire* bpf_program structure for BIOCSETF and the *entire* sock_fprog
structure for setsockopt(SOL_SOCKET, SO_ATTACH_FILTER) has been
initialized, rather than checking only the structure members and not the
padding, and *doesn't* check whether the program *pointed to* by that
structure has been initialized).  See

	https://bugs.kde.org/show_bug.cgi?id=312989

(I'll be filing a similar bug, with a similar patch to fix it, for
Valgrind-on-Linux).
Use raw ioctls or setsockopts to set the bad filters.

That guarantees that libpcap doesn't test the filter and decide the
kernel can't handle it, or attempt to fix it to work as a kernel filter,
and also avoids warnings from libpcap looking at the filter rather than
the system call looking at the filter.
Make the PCAP_DONT_INCLUDE_PCAP_BPF_H stuff BPF-only.

We don't need it on Linux and, in fact, it doesn't work on Linux, as
Linux doesn't define "struct bpf_program", libpcap does.
Fix tpo.
Oops, forgot to define USE_SOCKET_FILTERS on Linux.
Added DLTs for Fibre Channel ARPHRDs. Added dummy set_datalink for pcap-linux to allow setting DLT.
pcap-dbus code from Jakub Zawadzki
Merge pull request #29 from blueCommand/master

Added DLT choices for Fibre Channel interfaces
Merge remote-tracking branch 'github/master'
Pick up some fixes from a comment for the SourceForge bug for D-Bus support.

Fix the help message for --enable-dbus to say --enable-dbus, not
--enable-can, and call pcap_cleanup_live_common() rather than the
nonexistent pcap_live_cleanup_common().

Also, say "D-Bus capture" in the help message, to spell it correctly and
to clarify that we're only adding support for capturing on D-Bus (not
adding support for libpcap using D-Bus for some purpose or another).
Merge branch 'master' of git+ssh://bpf.tcpdump.org/tcpdump/master/git/libpcap
Fix D-Bus checks.

Check whether dbus-1 is installed before trying to get flags for it.
That way, if you don't have dbus-1 installed, you don't get pkg-config
errors printed.

Don't expect the shell to be able to run a command inside $() and have
the result expand to the standard output of that command; that's not a
feature present in all Bourne-compatible shells.  Use backquotes
instead.

If the user specified --enable-dbus, and dbus-1 wasn't found, fail -
they asked for D-Bus sniffing support, but we can't give it to them, so
let them know that they can't have what they want.  They either need to
install the package or stop specifying --enable-dbus.
If --enable-dbus isn't given, don't fail if dbus-1 isn't installed.

If --enable-dbus isn't given, we want to support D-Bus sniffing iff
dbus-1 is installed.  If it is given, we want to fail if dbus-1 isn't
installed, as the user explicitly demanded it.
Add a pcap-dbus.h header and include it in pcap-dbus.c and pcap.c.

That way, we ensure that the same function prototypes are seen when
dbus_create() and dbus_findalldevs() are defined and when they're used.

Also, add pcap-dbus.c to the list of "extra" files in Makefile.in, so it
goes into the release tarball.
pcap-int.h must be included before pcap-dbus.h, to get pcap_t etc. defined.
It's pcap-snf.h, not snf.h, and must be included after pcap-int.h.
Include pcap-canusb-linux.h to declare the exported functions.
Use 18 for DLT_IP_OVER_FC, explain the hell of ARPHRD_FC*.

18 is what RFC 4338 specifies as the ARP hardware type for RFC
4338-style IP-over-Fibre Channel; assume that if Linux ever implements
that it'll use 18 as the ARPHRD_ value for those interfaces, and also
encourage its use as the ARPHRD_ value for the interface even for RFC
2625-style IP-over-Fibre-Channel (perhaps providing some mechanism other
than looking at the ARPHRD_ value for code to find out what type of
IP-over-FC is being used, if necessary), and map it to DLT_IP_OVER_FC.

For the ARPHRD_FC* values (how do they correspond to ARPHRD_ values
anyway?), map them to a choice of link-layer header types, with the
default being DLT_FC_2, to *dis*courage their use in the future for
IP-over-FC and to allow capturing on Chistian Svensson's hardware
without a -y flag if frame delimiters aren't being included.
Use "ln -s" to link man pages by default.

Use AC_PROG_LN_S to determine whether "ln -s" works and, if not, whether
"ln" works and set LN_S appropriately for a link command, and use that
(as documented in the autoconf man page) to give man pages multiple
names.  (As the documentation says, to only way to make $(LN_S) work
regardless of how it's set is to execute it in the target directory.)
Check for malloc failing in pcap_ether_aton().

That also means that the lexical analyzer, which calls
pcap_ether_aton(), needs to check for pcap_ether_aton() failing.