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 | |
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
-rw-r--r-- | asn1/ranap/packet-ranap-template.c | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-ranap.c | 5 | ||||
-rw-r--r-- | epan/dissectors/packet-sua.c | 7 |
3 files changed, 11 insertions, 2 deletions
diff --git a/asn1/ranap/packet-ranap-template.c b/asn1/ranap/packet-ranap-template.c index f8eb34ad15..6cef14974a 100644 --- a/asn1/ranap/packet-ranap-template.c +++ b/asn1/ranap/packet-ranap-template.c @@ -1129,6 +1129,7 @@ void proto_reg_handoff_ranap(void) { * is or isn't enabled */ heur_dissector_add("sccp", dissect_sccp_ranap_heur, proto_ranap); + heur_dissector_add("sua", dissect_sccp_ranap_heur, proto_ranap); } diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c index b00ad0b681..b983f7dd51 100644 --- a/epan/dissectors/packet-ranap.c +++ b/epan/dissectors/packet-ranap.c @@ -10803,6 +10803,7 @@ void proto_reg_handoff_ranap(void) { * is or isn't enabled */ heur_dissector_add("sccp", dissect_sccp_ranap_heur, proto_ranap); + heur_dissector_add("sua", dissect_sccp_ranap_heur, proto_ranap); } @@ -12888,7 +12889,7 @@ void proto_register_ranap(void) { "PrivateIE-Field/value", HFILL }}, /*--- End of included file: packet-ranap-hfarr.c ---*/ -#line 1149 "packet-ranap-template.c" +#line 1150 "packet-ranap-template.c" }; /* List of subtrees */ @@ -13157,7 +13158,7 @@ void proto_register_ranap(void) { &ett_ranap_PrivateIE_Field, /*--- End of included file: packet-ranap-ettarr.c ---*/ -#line 1156 "packet-ranap-template.c" +#line 1157 "packet-ranap-template.c" }; /* Register protocol */ 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 |