Squelch a Coverity warning.

Make the lsa_p_prefix field as large as the largest possible prefix, so
that Coverity doesn't complain about going past the end of an array.
The item_len argument to ikev1_id_print() *is* used.

So don't mark it as unused; that *might* be what's causing Coverity to
think that sizeof(struct ikev1_pl_id) is always < item_len and thus that
the "data" variable can never be null.
When parsing information elements, check for the full length beforehand.

When parsing information elements, first check to make sure we have the
element ID and length, and fetch the length; then check to make sure we
have the entire element, including the information.  Remove those checks
from the handlers for individual elements.

This squelches a Coverity warning (when we check to make sure the length
remaining in the packet is enough for the element ID; the element ID is
one byte, and the loop continues as long as the length is non-zero, so
that's always true in the loop), and simplifies some other code.

Also check for the right length for fixed-length elements while we're at
it.
M3UA support added (GH #342)

SCTP's payload protocol identifiers added.

M3UA tests provided by wireshark
http://wiki.wireshark.org/SampleCaptures#Sigtran_Protocol_Family
But RFC4666 tells that parameter 0x0002 aren't carried by M3UA, so
it's OK that tcpdump doesn't know about this identifier.

Conflicts:
	Makefile.in
	interface.h
	print-sctp.c
	sctpConstants.h

-----------------------------------------------------------------------
The change to sctp_print() does three things:
* makes detection of ForCES consider PPID, not just port number
* verifies chunk length of all SCTP_DATA chunks, not just of ForCES
* adds PPID-specific dispatching with a particular case of M3UA

-- Denis
M3UA: improve code style

Merge m3ua.h into the only file that includes it (print-m3ua.c). Make
M3UA functions follow naming pattern, constify some of their arguments
and switch to ND_PRINT(). Make use of tok2str() and ternary conditional.
Eliminate declarations in the middle of code (C89).
M3UA: add safety checks

Add M3UA headers diagrams and check that message/parameter length allows
for at least respective header. Use TCHECK and signal malformed
structures.
Shorten sizeof to u_int, to match the %u format used with it.

On LP64 and LLP64 platforms, sizeof returns a 64-bit value, which is
larger than an int or unsigned int, so if you add the result of sizeof
to a value shorter than 64 bits, you can't print the result with %u.

As an M3UA parameter header is much shorter than 2^32 bytes, we can
safely just cast sizeof(struct m3ua_param_header) to u_int.
update CREDITS
u_intN_t is dead, long live uintN_t.

And, as we require at least autoconf 2.61, and as autoconf 2.61 and
later have AC_TYPE_UINTn_T and AC_TYPE_INTn_T macros, we use them to
define the uintN_t and intN_t macros if the system doesn't define them
for us.

This lets us get rid of bitypes.h as well.
More getting rid of old u_intN_t.
Some indentation cleanups from the previous checkin.
We still need u_intN_t.

Some libpcap headers use them, and even if we change libpcap to use
uintN_t, we don't require that tcpdump 4.x go with libpcap 1.x - we
allow people to install the latest tcpdump even if they have an older
libpcap and don't want to install a newer one.

However, we now define them in terms of the C99 uintN_t types, rather
than trying to guess what's appropriate; using unsigned long long for
u_int64_t meant that, on some platforms, u_int64_t didn't match
PRI[doux]64, and using unsigned long obviously won't work on ILP32
platforms.

Also, we already had calls to the autoconf macros for C99 types; get rid
of the ones we added.

Also also, clean up a comment in tcpdump-stdinc.h.
More fixes for uint8_t being shorter than u_int8_t.

Fix a typo while we're at it.
make NFLOG test case conditional

Not all libpcap copies have the support for NFLOG (added in 2013), thus
only run the test when tcpdump was compiled for it.
Coverity: Put 'notification_email: tcpdump-workers@lists.tcpdump.org' in comment
Fields in PPI headers are little-endian, not big-endian.

Fixes GitHub issue #382.
Merge remote-tracking branch 'bpf/master'
Enable check with various versions of gcc (e.g. CC=gcc-4.8 ./configure)

This change avoid:
    lmp-v : TEST SKIPPED (compiler is not GCC)

works also with: CC=/path/to/gcc ./configure
Use getopt_long().

This requires us to check for it in the configure script and to include
a version of getopt_long() for the benefit of platforms that don't have
it; we pick up the FreeBSD version and tweak it a bit (eliminating some
features specific to the BSD version of getopt_long(), as we want to use
it only in a fashion portable to Linux/*BSD/Solaris/etc.)

We also get rid of the version of getopt() we supply for Windows in
favor of the version of getopt_long() we provide.
Not all platforms we support define AF_INET6.