diff options
author | Bill Meier <wmeier@newsguy.com> | 2008-09-02 21:40:46 +0000 |
---|---|---|
committer | Bill Meier <wmeier@newsguy.com> | 2008-09-02 21:40:46 +0000 |
commit | 8d9c5d9b2b006d58f493f52a3fb9e25ae70d61ac (patch) | |
tree | cb44013088b9a0a506145cf3eec1872a405ef71f /epan/dissectors/packet-gtp.c | |
parent | 80b87dfaf36ea8cf8e937ea56c4bdff2c5cdc132 (diff) |
Cleanup related to prefs & proto_reg_handoff
svn path=/trunk/; revision=26124
Diffstat (limited to 'epan/dissectors/packet-gtp.c')
-rw-r--r-- | epan/dissectors/packet-gtp.c | 65 |
1 files changed, 31 insertions, 34 deletions
diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c index 8e165720e6..7dadd71d6d 100644 --- a/epan/dissectors/packet-gtp.c +++ b/epan/dissectors/packet-gtp.c @@ -69,6 +69,7 @@ static dissector_table_t ppp_subdissector_table; #define GTP_OPTIONAL 2 #define GTP_CONDITIONAL 4 +static gboolean g_gtp_over_tcp = TRUE; static guint g_gtpv0_port = GTPv0_PORT; static guint g_gtpv1c_port = GTPv1C_PORT; static guint g_gtpv1u_port = GTPv1U_PORT; @@ -287,12 +288,8 @@ static gint ett_gtp_ext_ps_handover_xid = -1; static gint ett_gtp_target_id = -1; static gint ett_gtp_utran_cont = -1; -static gboolean gtp_tpdu = TRUE; -static gboolean gtp_over_tcp = TRUE; -static gboolean gtp_etsi_order = FALSE; -static guint gtpv0_port = 0; -static guint gtpv1c_port = 0; -static guint gtpv1u_port = 0; +static gboolean g_gtp_tpdu = TRUE; +static gboolean g_gtp_etsi_order = FALSE; /* Definition of flags masks */ #define GTP_VER_MASK 0xE0 @@ -6062,7 +6059,7 @@ dissect_gtp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } else ext_hdr_val = tvb_get_guint8 (tvb, offset); - if (gtp_etsi_order) { + if (g_gtp_etsi_order) { checked_field = check_field_presence (gtp_hdr.message, ext_hdr_val , (int *)&mandatory); switch (checked_field) { case -2: proto_tree_add_text (gtp_tree, tvb, 0, 0, "[WARNING] message not found"); @@ -6084,7 +6081,7 @@ dissect_gtp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } } - if ((gtp_hdr.message == GTP_MSG_TPDU) && gtp_tpdu) { + if ((gtp_hdr.message == GTP_MSG_TPDU) && g_gtp_tpdu) { if (gtp_prime) offset = 6; @@ -6495,18 +6492,18 @@ proto_register_gtp(void) prefs_register_uint_preference(gtp_module, "v0_port", "GTPv0 port", "GTPv0 port (default 3386)", 10, &g_gtpv0_port); prefs_register_uint_preference(gtp_module, "v1c_port", "GTPv1 control plane (GTP-C) port", "GTPv1 control plane port (default 2123)", 10, &g_gtpv1c_port); prefs_register_uint_preference(gtp_module, "v1u_port", "GTPv1 user plane (GTP-U) port", "GTPv1 user plane port (default 2152)", 10, &g_gtpv1u_port); - prefs_register_bool_preference(gtp_module, "dissect_tpdu", "Dissect T-PDU", "Dissect T-PDU", >p_tpdu); + prefs_register_bool_preference(gtp_module, "dissect_tpdu", "Dissect T-PDU", "Dissect T-PDU", &g_gtp_tpdu); prefs_register_obsolete_preference (gtp_module, "v0_dissect_cdr_as"); prefs_register_obsolete_preference (gtp_module, "v0_check_etsi"); prefs_register_obsolete_preference (gtp_module, "v1_check_etsi"); - prefs_register_bool_preference (gtp_module, "check_etsi", "Compare GTP order with ETSI", "GTP ETSI order", >p_etsi_order); + prefs_register_bool_preference (gtp_module, "check_etsi", "Compare GTP order with ETSI", "GTP ETSI order", &g_gtp_etsi_order); prefs_register_obsolete_preference(gtp_module, "ppp_reorder"); /* This preference can be used to disable the dissection of GTP over TCP. Most of the Wireless operators uses GTP over UDP. * The preference is set to TRUE by default forbackward compatibility */ - prefs_register_bool_preference(gtp_module, "dissect_gtp_over_tcp", "Dissect GTP over TCP", "Dissect GTP over TCP", >p_over_tcp); + prefs_register_bool_preference(gtp_module, "dissect_gtp_over_tcp", "Dissect GTP over TCP", "Dissect GTP over TCP", &g_gtp_over_tcp); register_dissector("gtp", dissect_gtp, proto_gtp); } @@ -6514,9 +6511,12 @@ proto_register_gtp(void) void proto_reg_handoff_gtp(void) { - static int Initialized = FALSE; + static gboolean Initialized = FALSE; static dissector_handle_t gtp_handle; - + static gboolean gtp_over_tcp; + static guint gtpv0_port; + static guint gtpv1c_port; + static guint gtpv1u_port; if (!Initialized) { gtp_handle = find_dissector("gtp"); @@ -6527,47 +6527,44 @@ proto_reg_handoff_gtp(void) radius_register_avp_dissector(VENDOR_THE3GPP,21,dissect_radius_rat_type); radius_register_avp_dissector(VENDOR_THE3GPP,22,dissect_radius_user_loc); + ip_handle = find_dissector("ip"); + ipv6_handle = find_dissector("ipv6"); + ppp_handle = find_dissector("ppp"); + data_handle = find_dissector("data"); + gtpcdr_handle = find_dissector("gtpcdr"); + sndcpxid_handle = find_dissector("sndcpxid"); + bssap_pdu_type_table = find_dissector_table("bssap.pdu_type"); + /* AVP Code: 904 MBMS-Session-Duration */ + dissector_add("diameter.3gpp", 904, new_create_dissector_handle(dissect_gtp_mbms_ses_dur, proto_gtp)); + /* AVP Code: 911 MBMS-Time-To-Data-Transfer */ + dissector_add("diameter.3gpp", 911, new_create_dissector_handle(dissect_gtp_mbms_time_to_data_tr, proto_gtp)); + Initialized = TRUE; } else { dissector_delete ("udp.port", gtpv0_port, gtp_handle); dissector_delete ("udp.port", gtpv1c_port, gtp_handle); dissector_delete ("udp.port", gtpv1u_port, gtp_handle); - if ( !gtp_over_tcp ) { + if ( gtp_over_tcp ) { dissector_delete ("tcp.port", gtpv0_port, gtp_handle); dissector_delete ("tcp.port", gtpv1c_port, gtp_handle); dissector_delete ("tcp.port", gtpv1u_port, gtp_handle); } - } - gtpv0_port = g_gtpv0_port; - gtpv1c_port = g_gtpv1c_port; - gtpv1u_port = g_gtpv1u_port; + gtp_over_tcp = g_gtp_over_tcp; + gtpv0_port = g_gtpv0_port; + gtpv1c_port = g_gtpv1c_port; + gtpv1u_port = g_gtpv1u_port; dissector_add ("udp.port", g_gtpv0_port, gtp_handle); dissector_add ("udp.port", g_gtpv1c_port, gtp_handle); dissector_add ("udp.port", g_gtpv1u_port, gtp_handle); - if ( gtp_over_tcp ) { + if ( g_gtp_over_tcp ) { dissector_add ("tcp.port", g_gtpv0_port, gtp_handle); dissector_add ("tcp.port", g_gtpv1c_port, gtp_handle); dissector_add ("tcp.port", g_gtpv1u_port, gtp_handle); } - - ip_handle = find_dissector("ip"); - ipv6_handle = find_dissector("ipv6"); - ppp_handle = find_dissector("ppp"); - data_handle = find_dissector("data"); - gtpcdr_handle = find_dissector("gtpcdr"); - sndcpxid_handle = find_dissector("sndcpxid"); - bssap_pdu_type_table = find_dissector_table("bssap.pdu_type"); - /* AVP Code: 904 MBMS-Session-Duration */ - dissector_add("diameter.3gpp", 904, new_create_dissector_handle(dissect_gtp_mbms_ses_dur, proto_gtp)); - /* AVP Code: 911 MBMS-Time-To-Data-Transfer */ - dissector_add("diameter.3gpp", 911, new_create_dissector_handle(dissect_gtp_mbms_time_to_data_tr, proto_gtp)); - - - } |