fixup status_flags[]

Add guards to fix building against older libpcap versions (PCAP_IF_UP
and PCAP_IF_RUNNING belong to the latest libpcap only). Add a
terminating element to the array. Justify some indentation.
justify declaration of loopback_print()

This fixes a MSVC warning Gisle Vanem reports.
justify more function declarations
refine option parsing a bit

My wish is to put minimal code inside the getopt() switch. So I've added
a Dflag for option '-D' and a new function show_devices_and_exit().
Multi-byte fields are in network byte order; fetch them appropriately.
Fix test files to match byte-order fix for the RPL dissector.
Mark the TCP header structure as unaligned.
Point to IP addresses with "void *"s.

This keeps GCC from assuming the IP addresses are aligned and generating
32-bit load/store pairs on SPARC; those require alignment and cause
tcpdump to crash.
Add changes for 4.5.1 and post-4.5.1 changes.
Don't use a u_int16_t * to extract data from packets.

That convinces some compilers that the data is 16-bit aligned, but
there's no such guarantee of alignment.
Fix a bug the previous change made a bit more obvious.
Move safememcpy() to util.c so it doesn't get inlined.

It appears that some C compilers will inline safememcpy() *and* will, as
a result, optimize to assume alignment it if it's passed a
putatively-aligned pointer. As the pointers in question are not
guaranteed to be aligned, that can cause crashes on, for example, SPARC.

Also, rename the function to unaligned_memcpy(), to clarify what's
"safe" about it, and change some direct memcpy() calls to use it as
well.
Get rid of form feed in source.
Revert print-tcp memcpy() changes, and use unaligned_memcpy() instead.

That should prevent optimizing the memcpy into code that assumes
alignment.

Add unaligned_memcmp(), and use it, as well.
memcmp() doesn't modify either of its arguments.
print-forces: remove unused variable
Merge pull request #356 from msekletar/master

print-forces: remove unused variable
Merge git://github.com/the-tcpdump-group/tcpdump

"Please enter a commit message to explain why this merge is necessary" -
because Git appears to think it is, for some reason, otherwise it
wouldn't have told me to enter that message.
Rework the cookie cache.

This simplifies the code, gets rid of some type-punning about which GCC
warns, and reduces the size of the cache entries.
Fix some more unaligned accesses.