ts_format only uses ndo if HAVE_PCAP_SET_TSTAMP_PRECISION is defined.
Add a routine to print "text protocols", and add FTP/HTTP/SMTP/RTSP support.

"Text protocols" are protocols that have the general feel of FTP, with
command lines with a command name and space-separated arguments and
response lines beginning with a 3-digit reply code.  They can also
include HTTP-style headers and an entity body.

We add support for the FTP control channel, HTTP, SMTP, and RTSP.  We
also change the SIP printer to use it.
Print *something* for Telnet regardless of the -q/-v flags.

For -q, just print "[telnet]".  Without -v, at least print the
negotiation.
No need to check for -q in the Telnet dissector.

If -q is used, the TCP dissector won't call subdissectors, so the Telnet
dissector won't even get called.
Add a comment explaining what the first telnet_parse() call does.
The TCP dissector already prints the length; we don't have to.
Use the length field in the UDP header.

If it's less than the length of the IP payload, use it as the size of
the UDP packet.  If it's greater than the length of the IP payload,
and we're not dissecting the payload, report the length as bad.
More comments.
If we don't find a CR-LF or LF, print up to the end of the packet.
Separate SMB-over-TCP output from TCP output with a space.
Add additional bounds checks, ND_TTESTize existing ones.

Use ND_TTEST() and ND_TTEST2() for bounds checks.

Pass a pointer to the struct pkt_top to wb_dops, and calculate the
address of the first struct dophdr there.  Check each struct dophdr
before printing it.  Hopefully this will quiet a Coverity complaint.
Update tests to reflect the new HTTP dissector.
Update to reflect that BGP no longer prints a redundant length value.
Don't subtract the UDP header size from the length twice.
Fix length fields in UDP headers to be what they should be.

The value of the length field in a UDP header includes the length of the
header itself; the values in this capture didn't.  The length fields in
the IP headers and the RADIUS headers were correct and consistent with
each other, and the length fields in the UDP headers are now correct and
consistent with both of them.