diff options
author | Anders Broman <anders.broman@ericsson.com> | 2005-01-24 20:41:19 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2005-01-24 20:41:19 +0000 |
commit | 2fd03d5baf1bcd612f367c307c5c450b747f76d3 (patch) | |
tree | e03b35fc4ba045110bf7a8bae01a9c4f913e4ded /epan | |
parent | 5c19161dc29278da588f0f4d3a59ca31033f6899 (diff) | |
download | wireshark-2fd03d5baf1bcd612f367c307c5c450b747f76d3.tar.gz wireshark-2fd03d5baf1bcd612f367c307c5c450b747f76d3.tar.bz2 wireshark-2fd03d5baf1bcd612f367c307c5c450b747f76d3.zip |
Make the sub system number (ssn) settings preferences.
svn path=/trunk/; revision=13170
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-gsm_map.c | 72 |
1 files changed, 61 insertions, 11 deletions
diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c index 182a8ac4f8..a91c662105 100644 --- a/epan/dissectors/packet-gsm_map.c +++ b/epan/dissectors/packet-gsm_map.c @@ -43,9 +43,9 @@ #include <string.h> #include "epan/packet.h" +#include <epan/prefs.h> #include <epan/tap.h> #include "asn1.h" - #include "packet-tcap.h" #include "packet-gsm_ss.h" #include "packet-gsm_map.h" @@ -315,6 +315,17 @@ static gint ett_problem = -1; static gint ett_opr_code = -1; static gint ett_err_code = -1; +/* Preferenc settings default */ +static guint tcap_itu_ssn1 = 6; +static guint tcap_itu_ssn2 = 7; +static guint tcap_itu_ssn3 = 8; +static guint tcap_itu_ssn4 = 9; + +static guint global_tcap_itu_ssn1 = 6; +static guint global_tcap_itu_ssn2 = 7; +static guint global_tcap_itu_ssn3 = 8; +static guint global_tcap_itu_ssn4 = 9; + typedef struct dgt_set_t { unsigned char out[15]; @@ -3008,12 +3019,41 @@ dissect_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* Register the protocol with Ethereal */ +void +proto_reg_handoff_map(void) +{ + dissector_handle_t map_handle; + static int map_prefs_initialized = FALSE; + + map_handle = create_dissector_handle(dissect_map, proto_map); + + if (!map_prefs_initialized) { + map_prefs_initialized = TRUE; + } + else { + dissector_delete("tcap.itu_ssn", tcap_itu_ssn1, map_handle); + dissector_delete("tcap.itu_ssn", tcap_itu_ssn2, map_handle); + dissector_delete("tcap.itu_ssn", tcap_itu_ssn3, map_handle); + dissector_delete("tcap.itu_ssn", tcap_itu_ssn4, map_handle); + } + /* Set our sub system number for future use */ + tcap_itu_ssn1 = global_tcap_itu_ssn1; + tcap_itu_ssn2 = global_tcap_itu_ssn2; + tcap_itu_ssn3 = global_tcap_itu_ssn3; + tcap_itu_ssn4 = global_tcap_itu_ssn4; + + dissector_add("tcap.itu_ssn", tcap_itu_ssn1, map_handle); + dissector_add("tcap.itu_ssn", tcap_itu_ssn2, map_handle); + dissector_add("tcap.itu_ssn", tcap_itu_ssn3, map_handle); + dissector_add("tcap.itu_ssn", tcap_itu_ssn4, map_handle); +} void proto_register_map(void) { guint i; gint last_offset; + module_t *map_module; /* Setup list of header fields See Section 1.6.1 for details*/ static hf_register_info hf[] = @@ -3130,16 +3170,26 @@ proto_register_map(void) FT_UINT8, BASE_DEC); gsm_map_tap = register_tap("gsm_map"); -} -void -proto_reg_handoff_map(void) -{ - dissector_handle_t map_handle; + /* Register our configuration options, particularly our ports */ + + map_module = prefs_register_protocol(proto_map, proto_reg_handoff_map); + prefs_register_uint_preference(map_module, "tcap.itu_ssn1", + "Subsystem number used for GSM MAP 1", + "Set Subsystem number used for GSM MAP", + 10, &global_tcap_itu_ssn1); + prefs_register_uint_preference(map_module, "tcap.itu_ssn2", + "Subsystem number used for GSM MAP 2", + "Set Subsystem number used for GSM MAP", + 10, &global_tcap_itu_ssn2); + prefs_register_uint_preference(map_module, "tcap.itu_ssn3", + "Subsystem number used for GSM MAP 3", + "Set Subsystem number used for GSM MAP", + 10, &global_tcap_itu_ssn3); + prefs_register_uint_preference(map_module, "tcap.itu_ssn4", + "Subsystem number used for GSM MAP 4", + "Set Subsystem number used for GSM MAP", + 10, &global_tcap_itu_ssn4); - map_handle = create_dissector_handle(dissect_map, proto_map); - dissector_add("tcap.itu_ssn", 6, map_handle); - dissector_add("tcap.itu_ssn", 7, map_handle); - dissector_add("tcap.itu_ssn", 8, map_handle); - dissector_add("tcap.itu_ssn", 9, map_handle); } + |