aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2008-11-06 22:05:59 +0000
committerBill Meier <wmeier@newsguy.com>2008-11-06 22:05:59 +0000
commit868200ca6f3d66894c9a0970bd3fb292acb01e39 (patch)
tree9a3b48ebc40e88c60cdcf309bf6f6f0b35405488
parent8cbff5d30933ab7c731a68130c6dd744ac20f56a (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
-rw-r--r--asn1/ansi_map/packet-ansi_map-template.c63
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);