diff options
author | Martin Kaiser <wireshark@kaiser.cx> | 2017-06-23 17:29:51 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-06-24 22:04:09 +0000 |
commit | 1620c45e031f6d6854102f2d3b34f528bf06e194 (patch) | |
tree | ecd9374a134975cd47df6b298cc9be14b32a026e /epan/decode_as.h | |
parent | bb20b159f35455c41a8f077724f685508e0823b6 (diff) |
simplified Decode As entry if the next protocol requires manual selection
There's a number of protocols whose payload contains yet another
protocol but no criterion to figure out what this next protocol is.
Define a new global function register_decode_as_next_proto() to register
a Decode As entry for this scenario so the user can manually select the
next protocol.
A lot of the housekeeping that is normally required for Decode As is not
applicable to such a scenario. Provide simple data structures and
functions to cover this, make them internal to epan/decode_as.c and
allow them to be shared by multiple of the new simplified Decode As
entries.
(For now, the mechanism is based on an FT_UINT32 dissectore table where
all entries are linked to number 0. We should eventually come up with a
better mechanism.)
Change-Id: I3f81e331d7d04cfdfe9a58732d881652d77fabe2
Reviewed-on: https://code.wireshark.org/review/22376
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Petri-Dish: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/decode_as.h')
-rw-r--r-- | epan/decode_as.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/epan/decode_as.h b/epan/decode_as.h index 931d782d28..63398efdf4 100644 --- a/epan/decode_as.h +++ b/epan/decode_as.h @@ -85,6 +85,14 @@ typedef struct decode_as_s { /** register a "Decode As". A copy of the decode_as_t will be maintained by the decode_as module */ WS_DLL_PUBLIC void register_decode_as(decode_as_t* reg); +/** Register a "Decode As" entry for the special case where there is no + indication for the next protocol (such as port number etc.). + For now, this will use a uint32 dissector table internally and + assign all registered protocols to 0. The framework to do this can + be kept internal to epan. */ +WS_DLL_PUBLIC void register_decode_as_next_proto( + const char *name, const gchar *title, const gchar *table_name); + /* Walk though the dissector table and provide dissector_handle_t for each item in the table */ WS_DLL_PUBLIC void decode_as_default_populate_list(const gchar *table_name, decode_as_add_to_list_func add_to_list, gpointer ui_element); /* Clear a FT_UINT32 value from dissector table list */ |