Wireshark-dev: [Wireshark-dev] fighting for dissector independence
Date: Mon, 30 Dec 2013 13:51:28 -0500 (EST)
I started working on the "Fileshark" concept [1].   As part of the architecture, I don't believe "Fileshark" should include the dissector.lib as noted in the original discussion [2], but should include the rest of the epan directory ($LIBWIRESHARK_OBJECTS).  I hacked the nmake configuration in an attempt to make that happen and came across a handful of link errors.  Below is a description and what I think should be done about them (??? means either I don't know or don't really like my provided solution).  Any additional suggestions (including completely different approaches) are welcome .

mtp3_pc_to_str_buf() - ??? The problem is that the format is determined by a preference in the mtp3 dissector, otherwise I would think address_to_str.c would be a fine place for the function.
 
radius_dict.c - missing "basic type handling" functions from packet-radius.c.  ??? Since radius_dict.c is autogenerated, make an accompanying radius_(something).c in epan directory to include the "basic type handling" functions
 
tcap-persistentdata.c - lists and hash tables used for tcap dissector.  Should really be in packet-tcap[-template].c
camel-persistentdata.c - same as tcap
 
print.c - hf_ fields from from frame and data dissectors in order to output data values.  ???
 
gcp.[ch] - Context tracking for Gateway Control Protocol.  Used by a few dissectors - just put the functionality in one of them.
 
follow.c - get_tcp_conversation_data() - move in from packet-tcp.c (some other related functionality needs to be pulled in too)
 
exported_pdu.c - dvbci_get_evt_from_addrs - ??? part of "address handling" of epan? to_str?
 
 

One other solution I thought of was to create a separate "grouping" in the build configuration that wouldn't have "very dissector specific files" in the epan directory, but I wanted to avoid that duplication (or a confusing meaning of "common") if possible.  Maybe expand wsutils?