"dissect_smb_logon()" always return TRUE, so just get rid of their
return value.
"call_dissector()" automatically calls the data dissector if the
protocol for the dissector being called is disabled, so we don't have to
check its result and call the data dissector if it returns 0.
svn path=/trunk/; revision=9027
Implement quoted-string parsing by appending the closing quote
to the string value. If the quoted-string value does not start
with a quote, dissection resumes but a warning is displayed.
Textual headers are assumed to be 0x00 terminated (otherwise we
have a malformed packet or a short frame).
The Trailer header is also dissected now, and the charset
parameter dissection has been rewritten.
The Content-ID header dissector was registered at the place of
the Trailer dissector; this has also been fixed.
svn path=/trunk/; revision=9024
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=9002
(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