From Jeff Morriss: use the new range preference type.

svn path=/trunk/; revision=13796
This commit is contained in:
Anders Broman 2005-03-17 22:08:50 +00:00
parent b2cfe35db3
commit fe9a6628b8
1 changed files with 87 additions and 94 deletions

View File

@ -1100,15 +1100,10 @@ static dissector_table_t sms_dissector_table; /* SMS TPDU */
static dissector_handle_t data_handle;
/* 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;
#define MAX_SSN 254
static range_t *global_ssn_range;
static range_t *ssn_range;
dissector_handle_t map_handle;
/* Global variables */
@ -11383,33 +11378,40 @@ static const value_string Teleservice_vals[] = {
{0xdf, "plmn-specificTS-F" },
{ 0, NULL }
};
/*--- proto_reg_handoff_gsm_map ---------------------------------------*/
void proto_reg_handoff_gsm_map(void) {
dissector_handle_t map_handle;
static int map_prefs_initialized = FALSE;
map_handle = create_dissector_handle(dissect_gsm_map, proto_gsm_map);
/*--- proto_reg_handoff_gsm_map ---------------------------------------*/
static void range_delete_callback(guint32 ssn)
{
if (ssn) {
dissector_delete("tcap.itu_ssn", ssn, map_handle);
}
}
static void range_add_callback(guint32 ssn)
{
if (ssn) {
dissector_add("tcap.itu_ssn", ssn, map_handle);
}
}
void proto_reg_handoff_gsm_map(void) {
static int map_prefs_initialized = FALSE;
data_handle = find_dissector("data");
if (!map_prefs_initialized) {
map_prefs_initialized = TRUE;
map_handle = create_dissector_handle(dissect_gsm_map, proto_gsm_map);
}
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);
range_foreach(ssn_range, range_delete_callback);
}
/* 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);
g_free(ssn_range);
ssn_range = range_copy(global_ssn_range);
range_foreach(ssn_range, range_add_callback);
}
/*--- proto_register_gsm_map -------------------------------------------*/
@ -14509,7 +14511,8 @@ void proto_register_gsm_map(void) {
proto_register_subtree_array(ett, array_length(ett));
sms_dissector_table = register_dissector_table("gsm_map.sms_tpdu",
"GSM SMS TPDU",FT_UINT8, BASE_DEC);
"GSM SMS TPDU", FT_UINT8,
BASE_DEC);
gsm_map_tap = register_tap("gsm_map");
register_ber_oid_name("0.4.0.0.1.0.1.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version3(3)" );
@ -14555,26 +14558,16 @@ void proto_register_gsm_map(void) {
register_ber_oid_name("0.4.0.0.1.0.25.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) msPurging(27) version2(2)" );
/* Register our configuration options, particularly our ssn:s */
/* Set default SSNs */
range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
ssn_range = range_empty();
gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
prefs_register_uint_preference(gsm_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(gsm_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(gsm_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(gsm_map_module, "tcap.itu_ssn4",
"Subsystem number used for GSM MAP 4",
"Set Subsystem number used for GSM MAP",
10, &global_tcap_itu_ssn4);
prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
"TCAP Subsystem numbers used for GSM MAP",
&global_ssn_range, MAX_SSN);
}