Wireshark-dev: Re: [Wireshark-dev] How to call dissectors which are not registered (by register
From: Guy Harris <[email protected]>
Date: Mon, 9 Jun 2008 18:34:16 -0700
On Jun 9, 2008, at 6:27 AM, yami wrote:

I'm writing a plugin for our program's own protocol, which encapsulates a whole 'SMB' package.
Does it encapsulate anything *other* than SMB?

  But in packet-smb.c, the dissector for 'SMB' is not registered.

Is it possible to call it without changing wireshark's code (packet- smb.c) itself?
No.  You'd have to modify the SMB dissector to register the dissector  
by name, rather than creating an anonymous dissector handle with  
create_dissector_handle().
If your protocol encapsulates other protocols than SMB, you'd probably  
want a dissector table or a heuristic dissector table, and you'd want  
to have the SMB dissector register itself in that table.  If it only  
encapsulates SMB, you might as well just have the SMB dissector  
register itself by name and have your dissector's proto_reg_handoff  
routine find the handle for SMB and use that.
If you modify the SMB dissector to register itself by name, send us a  
patch, and we'll incorporate it into some future Wireshark release.