(subdissectors must register their Content-Type values as
all-lower-case).
Don't include parameters in the value we look up in the Content-Type
subdissector table.
svn path=/trunk/; revision=9000
DISPLAY, and CLIENTNAME (in that order). If any of them are set, create
a capture filter that excludes their traffic and set it as the default.
The longer filters should be efficient without being overly long; they
may need some tweaking.
svn path=/trunk/; revision=8994
This functin was in a recent profiling run the fifth most expensive function.
It consumed ~3.5% of the total cpu in that run.
Using a static table this function is now just over twice as fast as previously.
My testrun calling it 10.000.000 times in a loop changed the execution time from ~17.3s ro ~8.2s
If this test was representative for the speedup and if ~3.5 in the profile run
was representative for normal cases this should make ethereal ~1.8% faster.
Woohoo.
(low hanging fruit)
svn path=/trunk/; revision=8992
variables to be initialized to non-constant values (C89 says that "All
the expressions in an initializer for an object that has static storage
duration or in an initializer list for an object that has aggregate or
union type shall be constant expressions"; presumably the intent of the
former was to avoid run-time initialization and of the latter was to let
the initialization be done by copying from a compile-time-created blob
of memory), so we have to initialize "info->counts" by hand.
svn path=/trunk/; revision=8984
Make "proto_is_protocol_enabled()" and "proto_get_protocol_short_name()"
take a "protocol_t *" as an argument, so they don't have to look up the
"protocol_t" - this will probably speed them up considerably, and
they're called on almost every dissector handoff.
Get rid of a number of "proto_is_protocol_enabled()" calls that aren't
necessary (dissectors called through handles, including those called
through dissector tables, or called as heuristic dissectors, aren't even
called if their protocol isn't enabled).
Change some direct dissector calls to go through handles.
svn path=/trunk/; revision=8979
The hf field we give to dissect_per_object_string is a FT_STRING and not a FT_BYTES. This caused ethereal to abort with an assert failure.
This fixes the issue that Keith French recently brought up in his mailing to
ethereal-users
svn path=/trunk/; revision=8977
building in Cygwin's pretend-it's-UNIX environment, we need to treat the
platform as Windows.
Get rid of the BSD #define - just check for the platforms on which we
mustn't use "select()".
svn path=/trunk/; revision=8967
instead of DISABLED.
These features do not consume that much memory or CPU but will greatly enhance the feature set of ethereal. Make it enabled by default so also those that never venture into the preferences dialog will benefit from it.
svn path=/trunk/; revision=8957
This makes the CulmulativeBytes field make more sense since if we want
something to be a TimeReference frame it is likely that we also want to
measure BOTH time and number of bytes (==culmulative bytes) until the event we are looking at.
svn path=/trunk/; revision=8956
of match_strval() with val_to_str() so that we don't throw an assertion.
These changes fix a problem with a file from Martin Dubovsky; otherwise
they haven't been heavily tested.
svn path=/trunk/; revision=8954
implement the TE header decoding;
fix the exported add_content_type function;
reimplement the header parameter dissection so the parameters
also show up in the related header.
svn path=/trunk/; revision=8952