Dissector compatibility with various Wireshark versions
Trying to implement a dissector for Wireshark I faced trouble displaying my protocol name in COL_PROTOCOL column. Turned out the reason was that COL_PROTOCOL value passed to col_set_str was different from what my particular Wireshark version expected: Wireshark was 4.4.9 while API headers were for 4.7.something, and a new COL_* constant was added between the two versions.
As far as I could google, compatibility for plugins between various Wireshark versions is not guaranteed (and for the COL_* constants it is actually stated right in the source code that the values WILL change). This, however, poses a question.
Does that actually mean that for every user willing to view our protocol dissected (like a few dozens of them all over the country using different Wireshark versions) we’ll have to provide separate DLLs that should match particular user’s Wireshark version while being exactly the same inside? What’s even worse, the plugin is going to share the source code with software actually implementing the protocol, and the software is written in a different programming language than any of Wireshark-supported ones, so this basically means diffing every Wireshark version source code looking for possible inconsistencies introduced.
What actually is the Wireshark policy about this?