diff options
author | Bill Meier <wmeier@newsguy.com> | 2008-11-06 22:05:59 +0000 |
---|---|---|
committer | Bill Meier <wmeier@newsguy.com> | 2008-11-06 22:05:59 +0000 |
commit | 868200ca6f3d66894c9a0970bd3fb292acb01e39 (patch) | |
tree | 9a3b48ebc40e88c60cdcf309bf6f6f0b35405488 /asn1/ansi_map/packet-ansi_map-template.c | |
parent | 8cbff5d30933ab7c731a68130c6dd744ac20f56a (diff) |
Fix bug wherein proto_reg_handoff... wasn't being called during dissector init;
(definition of proto_reg_hand_off... wasn't left-justified and thus was not
found when generating register.c)
Also: slight changes related to proto_reg_handoff and proto_register:
Use find_dissector;
gboolean for intiialized flag;
localize saved range pref;
svn path=/trunk/; revision=26718
Diffstat (limited to 'asn1/ansi_map/packet-ansi_map-template.c')
-rw-r--r-- | asn1/ansi_map/packet-ansi_map-template.c | 63 |
1 files changed, 29 insertions, 34 deletions
diff --git a/asn1/ansi_map/packet-ansi_map-template.c b/asn1/ansi_map/packet-ansi_map-template.c index 7527b9a6d0..5e15438ba7 100644 --- a/asn1/ansi_map/packet-ansi_map-template.c +++ b/asn1/ansi_map/packet-ansi_map-template.c @@ -113,7 +113,6 @@ /* Preferenc settings default */ #define MAX_SSN 254 static range_t *global_ssn_range; -static range_t *ssn_range; static dissector_handle_t ansi_map_handle=NULL; @@ -357,7 +356,6 @@ static gint ett_sms_originationrestrictions = -1; #include "packet-ansi_map-ett.c" /* Global variables */ -static dissector_handle_t data_handle=NULL; static dissector_table_t is637_tele_id_dissector_table; /* IS-637 Teleservice ID */ static dissector_table_t is683_dissector_table; /* IS-683-A (OTA) */ static dissector_table_t is801_dissector_table; /* IS-801 (PLD) */ @@ -4368,40 +4366,40 @@ dissect_ansi_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } static void range_delete_callback(guint32 ssn) - { - if (ssn) { - delete_ansi_tcap_subdissector(ssn , ansi_map_handle); +{ + if (ssn) { + delete_ansi_tcap_subdissector(ssn , ansi_map_handle); } - } +} - static void range_add_callback(guint32 ssn) - { - if (ssn) { - add_ansi_tcap_subdissector(ssn , ansi_map_handle); - } - } +static void range_add_callback(guint32 ssn) +{ + if (ssn) { + add_ansi_tcap_subdissector(ssn , ansi_map_handle); + } +} + +void +proto_reg_handoff_ansi_map(void) +{ + static gboolean ansi_map_prefs_initialized = FALSE; + static range_t *ssn_range; - void - proto_reg_handoff_ansi_map(void) - { - static int ansi_map_prefs_initialized = FALSE; - data_handle = find_dissector("data"); - - if(!ansi_map_prefs_initialized) - { + if(!ansi_map_prefs_initialized) + { ansi_map_prefs_initialized = TRUE; - ansi_map_handle = create_dissector_handle(dissect_ansi_map, proto_ansi_map); - } - else - { + ansi_map_handle = find_dissector("ansi_map"); + } + else + { range_foreach(ssn_range, range_delete_callback); - } - - g_free(ssn_range); - ssn_range = range_copy(global_ssn_range); - - range_foreach(ssn_range, range_add_callback); - } + g_free(ssn_range); + } + + ssn_range = range_copy(global_ssn_range); + + range_foreach(ssn_range, range_add_callback); +} /*--- proto_register_ansi_map -------------------------------------------*/ void proto_register_ansi_map(void) { @@ -5250,7 +5248,6 @@ void proto_register_ansi_map(void) { /* Register fields and subtrees */ proto_register_field_array(proto_ansi_map, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); - register_dissector("ansi_map", dissect_ansi_map, proto_ansi_map); @@ -5271,8 +5268,6 @@ void proto_register_ansi_map(void) { range_convert_str(&global_ssn_range, "5-14", MAX_SSN); - ssn_range = range_empty(); - ansi_map_module = prefs_register_protocol(proto_ansi_map, proto_reg_handoff_ansi_map); |