diff options
author | Anders Broman <anders.broman@ericsson.com> | 2006-06-29 20:39:53 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2006-06-29 20:39:53 +0000 |
commit | 18c69d17b0d304b72dcafa37b0ea7d3a4551a85e (patch) | |
tree | 049c764a8314e802a6f1178aec139c9285de4243 /epan/dissectors/packet-sua.c | |
parent | f4c7cae6b0a690af74560e2e67b6fe60fec1d69f (diff) |
Add a heuristic table to SUA (SUA and SCCP should share the same table) to heuristically
dissect RANAP ower SUA.
svn path=/trunk/; revision=18616
Diffstat (limited to 'epan/dissectors/packet-sua.c')
-rw-r--r-- | epan/dissectors/packet-sua.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/epan/dissectors/packet-sua.c b/epan/dissectors/packet-sua.c index 8341631372..3ab61d851e 100644 --- a/epan/dissectors/packet-sua.c +++ b/epan/dissectors/packet-sua.c @@ -329,6 +329,7 @@ static gint ett_sua_protcol_classes = -1; static dissector_handle_t data_handle; static dissector_table_t sccp_ssn_dissector_table; +static heur_dissector_list_t heur_subdissector_list; /* stuff for supporting multiple versions */ typedef enum { @@ -1829,6 +1830,10 @@ dissect_sua_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *sua_t && (source_ssn == INVALID_SSN || !dissector_try_port(sccp_ssn_dissector_table, source_ssn, data_tvb, pinfo, tree))) { + /* try heuristic subdissector list to see if there are any takers */ + if (dissector_try_heuristic(heur_subdissector_list, data_tvb, pinfo, tree)) { + return; + } /* No sub-dissection occured, treat it as raw data */ call_dissector(data_handle, data_tvb, pinfo, sua_tree); } @@ -2010,6 +2015,8 @@ proto_register_sua(void) prefs_register_obsolete_preference(sua_module, "sua_version"); prefs_register_enum_preference(sua_module, "version", "SUA Version", "Version used by Wireshark", &version, options, FALSE); + register_heur_dissector_list("sua", &heur_subdissector_list); + } void |