Update macos-setup.sh to attempt to install Qt 6.2.4; that won't work,
but at least it means it doesn't install Qt 5, which is no longer used
as the default Qt version for builds.
Have macos-setup.sh not say you're ready to build Wireshark if Qt hasn't
been installed; if QT_VERSION was set but Qt wasn't installed, point to
the Wireshark Develper's Guide for instructions on how to download and
install it.
Have the Wireshark Developer's Guide give instructions on how to
download and install Qt 6, derived from the instructions for Windows but
modified for installing 6.2.4 on macOS.
To reduce startup external file parsing replce the manuf file with
static arrays compiled into the binary.
Add 3 tables for MA-L, MA-M and MA-S. Add a fourth table to direct
a 24-bit MAC prefix (OUI) to one of these tables.
Adapt the make-manuf.py script to generate the static C data
instead of the text file.
The arrays are sorted and a binary search is performed to map
an OUI (24bit/28bit/36bit) to a short and long name.
Rather than generating a bunch of individual fprintf() calls, one per
line of the preamble and finale, generate two static const char arrays
with the preamble and finale text, and have the routines just write them
out with an fwrite().
Add - and + to punctuation exclusion list.
Do not remove the first word as a general term. When an exclusion
term is used as the first word usually it is noa only legalese and
should not be rejected. The exception is "The".
Skip some locations in company names that are just repeated low-value
information. Many different Chinese companies will short to the same
name (Shenzen for example).
This is a heuristic and not 100% reliable but in the vast majority of
cases it cuts down on noise and generates more informative names.
The truncation size of 8 is too short to convey enough information
in many cases. Some experimentation suggests it can be safely
increased for better readability without any other ill effects.
Make a conservative size increase 12. Arguaby it could be larger.
The cavebear OUI list is hopelessly outdated (last updated 1999?)
and our template file mostly contains obsolete or poorly formatted
entries, compared to the official IEEE registry. We should rely on
the official registry, which is the best and most up-to-date source,
despite some minor inconsistencies and glitches.
Remove the template file and use the IEEE registry exclusively.
To speed up start-up we no longer read the services file
from an external resource. Instead it is compiled statically
into the binary in a sorted array.
The personal services file is still parsed and loaded at startup,
if it exists, to allow users to add custom entries and override
global entries.
For historical reasons the port list is mostly composed of
the same entry for TCP and UDP. To avoid a lot of duplication
we add an extra TCP+UDP table and do two lookups for TCP or
UDP, one in the TCP+UDP table and the other in the TCP/UDP table.
Because the services name space is pretty sparse, with lots of
holes, we also use a binary search instead of a linear array
with aprox. 49000 entries, where most would be empty.
Do not mix wire size, a protocol property, with fvalue
length, a property of certain types of objects (sequences).
Rename ftype_length() to ftype_wire_size(). Do not return
wire_size with fvalue_length() (use ftype_wire_size()
instead).
Make the semantic check reject taking the len() of objects
that are not arrays or lists. If the (fixed) len() of a number
is somehow useful we can add a different function for that.