Import ANSI C cityhash.

The implementation is the ANSI C adaptation (by Alexander Nusov)
of Google's original C++ implementation.

The whole is covered by an MIT-style license.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Remove autotools files.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Remove __P macro in auth_gss.h

We don't support K&R C compilers.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Fix city.h include.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Add intrinsic checksum support.

Currently uses CityHash64.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Import table-driven, software crc32c from FreeBSD.

Fix intrinsic checksum computation.  The checksum must be taken
EITHER at full length after the first read which fills the
checksum window or at the record length that is smaller.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
After benchmarking, prefer CityHash64.

Conditionally compile CityHash64 checksums in xdr_inrec.c
and svc_dg.c.  It's substantially faster than FreeBSD's
table-driven crc32.c.

An implementation using SSE 4.2 should be even faster, but the
speed of CityHash64 is difficult to overstate.
Reorder conditions in xdr_inrec_cksum.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Fix 2 unused variable warnings at O2.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Check for _USE_TIRPC_IPV6 while parsing and using netconf
 entries

/etc/netconfig on Freebsd has the following order:
udp6       tpi_clts      v     inet6    udp     -       -
tcp6       tpi_cots_ord  v     inet6    tcp     -       -
udp        tpi_clts      v     inet     udp     -       -
tcp        tpi_cots_ord  v     inet     tcp     -       -
rawip      tpi_raw       -     inet      -      -       -
local      tpi_cots_ord  -     loopback  -      -       -

Currently, tirpc only checks for the type of entries provided,
i.e. udp or tcp. Both inet and inet6 families of entries are
parsed without checking _USE_TIRPC_IPV6. This causes a mismatch
error when Ganesha tries to configure udp but udp6's entry is
parsed and returned. This check is not necessary in linux as
inet family entries are enumerated before inet6 entries.

Signed-off-by: Viji Ganapathi <vganapathi@panasas.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Honor svc_params->idle_timeout.

In addition to passing the value, set TRUE as the value for
"cleanblock."

Signed-off-by: Matt Benjamin <matt@linuxbox.com>