Ethereal-dev: Re: [Ethereal-dev] Need help with protocol that spans multiple TVBs

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Tomas Kukosa <tomas.kukosa@xxxxxxxxxxx>
Date: Tue, 13 Apr 2004 09:53:00 +0200
Sid Sid wrote:
Yes, although, ideally, the ACSE dissector should perhaps have a
string-based dissector table for the OID of the protocol using ACSE, so
that dissectors for those protocols can just register in the dissector
table, rather than having the ACSE dissector have a hard-wired
association of OIDs with dissectors.

Good idea.
What is the best way to do it ?
I mean should we have some registration function inside ACSE dissector which will be called by FTAM/CMIP/MMS and so on dissectors ?

See packet-h225 or packet-h245 for example. Short hint is below.

--- ACSE dissector ---
/* Subdissector tables */
static dissector_table_t application_dissector_table;

show_request_sequence_top() {
...
  app_handle = dissector_get_string_handle(application_dissector_table, oid_string);
...
}

proto_register_acse() {
...
application_dissector_table = register_dissector_table("acse.application", "???", FT_STRING, BASE_NONE);
...
}

--- FTAM dissector ---
proto_reg_handoff_ftam() {
...
  dissector_add_string("acse.application", "1.0.8571.1.1", ftam_handle);
...
}