Thanks for the good work and massive progress! :-)
On 04/30/15 01:32, Alexis La Goutte wrote:
Thanks for stats !
On Thu, Apr 30, 2015 at 2:44 AM, <mmann78@xxxxxxxxxxxx
<mailto:mmann78@xxxxxxxxxxxx>> wrote:
From the "maybe you were curious, but afraid to ask" file, some
stats I've collected on proto_tree_add_text calls:
1292 calls in the dissector directory [1] from 86 files (for an
average of 15 calls per dissector that have at least one)
21 calls outside of the dissector directory, mostly in comments (all
plugin dissectors have been converted)
There are only 3 dissectors flagged by checkAPIs.pl for "excessive"
proto_tree_add_text use
1. packet-csn1.c (36) . I've been told this is comparable to asn.1
dissectors. It seems to me like hf_ items for proto_tree_add_item
should be passed into the functions that call proto_tree_add_text,
but every time I try to figure it out, it just makes my head hurt.
However there are sample captures out there (bug 7615 for
example) if someone wants to take a shot.
2. packet-sigcomp.c (211). This was "hiding" in the epan directory
outside of the dissector directory up until a few months ago. It
doesn't appear to be 211 separate fields, just a lot of reuse, but I
don't understand enough (or can find sample captures) about it to
take the plunge. convert_proto_tree_add_text.pl
<http://convert_proto_tree_add_text.pl> could probably be used to
lighten the load. If this dissector is removed from the previous
stats, the average per dissector drops to 12.
3. packet-wbxml.c (80). This appears to be a tvb_parse candidate,
but I've never seen a sample capture to attempt to make the
conversion (and learn about tvb_parse in the process)
Outside of those 3, according to checkAPIs.pl [2]
1. There are 2 other dissectors that have more than 30
proto_tree_add_text calls
packet-bgp.c (45)
packet-bssgp.c (32)
2. There are 12 dissectors with 20-30 proto_tree_add_text calls
packet-ansi_801.c
packet-ansi_a.c
packet-dcerpc-spoolss.c
packet-dcerpc.c
packet-dvbci.c
packet-gsm_a_rr.c
packet-mih.c
packet-q2931.c
packet-q931.c
packet-rsvp.c
packet-rtps.c
packet-slsk.c
3. There are 21 dissectors with <= 5 proto_tree_add_text calls.
For many of these, I can't match the functionality "exactly" (or how
fields _should_ be formatted) or when "complicated formatting" (or
logic) is involved and I don't have a sample capture to verify against.
As you can tell from the commit logs, I work on this in fits and
starts, but patches are always welcome. I'll always
defer/discard my work in progress to someone more familiar with a
dissector.
[1] This is a simple grep and doesn't take into account comments,
ignore header files, etc
[2] I've certainly come across a few cases where checkAPIs.pl
results don't equal grep (even if you factor out comments), but
overall its reliable for large numbers of proto_tree_add_text calls