Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: [Wireshark-dev] how to remove/unregister a dissector?

From: George Nychis <gnychis@xxxxxxxxx>
Date: Tue, 26 Apr 2011 13:16:46 -0400
Hi all,

I am looking for the cleanest way to remove or unregister a set of dissectors from libwireshark.  When using libwireshark, I register using:
  epan_init(register_all_protocols, register_all_protocol_handoffs, NULL, NULL,
            failure_message, open_failure_message, read_failure_message,
            write_failure_message);

However, there are some protocols I do not want registered.  Like, packet-smb* ... so, is there a way to unregister certain protocols after registering them all?

Another alternative, is to remove packet-smb* from the build.  I thought a simple way to do this would be to remove it from register.c as a quick hack, but that seems to break many things.  So then I looked in to how register.c is generated, and I couldn't find a good answer.  I thought that I could remove packet-smb* from epan/CMakeLists.txt, and after cleaning and entirely rebuilding, it would remove packet-smb* from the dissectors library.  But, it doesn't seem like that is where it is getting generated from.

This is where I am at now.  I can hack at epan/dissectors/Makefile to remove specific protocols, but I want it to be something more robust.  Are there any better methods?

Thanks!
George