diff options
-rw-r--r-- | epan/dissectors/packet-dlm3.c | 17 | ||||
-rw-r--r-- | epan/dissectors/packet-lapd.c | 34 | ||||
-rw-r--r-- | epan/dissectors/packet-mikey.c | 7 | ||||
-rw-r--r-- | epan/dissectors/packet-mpls-echo.c | 5 | ||||
-rw-r--r-- | epan/dissectors/packet-pana.c | 13 | ||||
-rw-r--r-- | epan/dissectors/packet-radius.c | 59 | ||||
-rw-r--r-- | epan/dissectors/packet-vlan.c | 6 |
7 files changed, 64 insertions, 77 deletions
diff --git a/epan/dissectors/packet-dlm3.c b/epan/dissectors/packet-dlm3.c index 9ed911c340..2fa2eac5d7 100644 --- a/epan/dissectors/packet-dlm3.c +++ b/epan/dissectors/packet-dlm3.c @@ -1236,27 +1236,24 @@ proto_register_dlm3(void) } -/* Some code copyed from packet-distcc.c and packet-diameter.c. */ void proto_reg_handoff_dlm3(void) { static gboolean dissector_registered = FALSE; - static int tcp_port = 0; - static int sctp_port = 0; + static guint tcp_port; + static guint sctp_port; static dissector_handle_t dlm3_tcp_handle; static dissector_handle_t dlm3_sctp_handle; - if (dissector_registered) { + if (!dissector_registered) { + dlm3_sctp_handle = new_create_dissector_handle(dissect_dlm3, proto_dlm3); + dlm3_tcp_handle = new_create_dissector_handle(dissect_dlm3, proto_dlm3); + dissector_registered = TRUE; + } else { dissector_delete("tcp.port", tcp_port, dlm3_tcp_handle); dissector_delete("sctp.port", sctp_port, dlm3_sctp_handle); - } else { - dlm3_sctp_handle = new_create_dissector_handle(dissect_dlm3, - proto_dlm3); - dlm3_tcp_handle = new_create_dissector_handle(dissect_dlm3, - proto_dlm3); - dissector_registered = TRUE; } tcp_port = dlm3_tcp_port; diff --git a/epan/dissectors/packet-lapd.c b/epan/dissectors/packet-lapd.c index a74612edf1..dcd0f37486 100644 --- a/epan/dissectors/packet-lapd.c +++ b/epan/dissectors/packet-lapd.c @@ -82,7 +82,6 @@ static gint ett_lapd_address = -1; static gint ett_lapd_control = -1; static gint ett_lapd_checksum = -1; static gint pref_lapd_rtp_payload_type = 0; -static gint lapd_rtp_payload_type; static dissector_table_t lapd_sapi_dissector_table; static dissector_table_t lapd_gsm_sapi_dissector_table; @@ -91,7 +90,6 @@ static dissector_table_t lapd_gsm_sapi_dissector_table; static gboolean global_lapd_gsm_sapis = FALSE; static dissector_handle_t data_handle; -static dissector_handle_t tei_handle; /* * Bits in the address field. @@ -545,22 +543,22 @@ void proto_reg_handoff_lapd(void) { static gboolean init = FALSE; - static dissector_handle_t lapd_handle; static dissector_handle_t lapd_bitstream_handle; + static gint lapd_rtp_payload_type; - if (init) { - if ((lapd_rtp_payload_type > 95) && (lapd_rtp_payload_type < 128)) - dissector_delete("rtp.pt", lapd_rtp_payload_type, lapd_bitstream_handle); - } else { - data_handle = find_dissector("data"); - tei_handle = find_dissector("tei"); + if (!init) { + dissector_handle_t lapd_handle; - lapd_handle = create_dissector_handle(dissect_lapd, proto_lapd); + lapd_handle = find_dissector("lapd"); dissector_add("wtap_encap", WTAP_ENCAP_LINUX_LAPD, lapd_handle); lapd_bitstream_handle = create_dissector_handle(dissect_lapd_bitstream, proto_lapd); + data_handle = find_dissector("data"); init = TRUE; + } else { + if ((lapd_rtp_payload_type > 95) && (lapd_rtp_payload_type < 128)) + dissector_delete("rtp.pt", lapd_rtp_payload_type, lapd_bitstream_handle); } lapd_rtp_payload_type = pref_lapd_rtp_payload_type; @@ -679,18 +677,18 @@ proto_register_lapd(void) module_t *lapd_module; - proto_lapd = proto_register_protocol("Link Access Procedure, Channel D (LAPD)", + proto_lapd = proto_register_protocol("Link Access Procedure, Channel D (LAPD)", "LAPD", "lapd"); - proto_register_field_array (proto_lapd, hf, array_length(hf)); - proto_register_subtree_array(ett, array_length(ett)); + proto_register_field_array (proto_lapd, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); - register_dissector("lapd", dissect_lapd, proto_lapd); + register_dissector("lapd", dissect_lapd, proto_lapd); - lapd_sapi_dissector_table = register_dissector_table("lapd.sapi", - "LAPD SAPI", FT_UINT16, BASE_DEC); + lapd_sapi_dissector_table = register_dissector_table("lapd.sapi", + "LAPD SAPI", FT_UINT16, BASE_DEC); - lapd_gsm_sapi_dissector_table = register_dissector_table("lapd.gsm.sapi", - "LAPD GSM SAPI", FT_UINT16, BASE_DEC); + lapd_gsm_sapi_dissector_table = register_dissector_table("lapd.gsm.sapi", + "LAPD GSM SAPI", FT_UINT16, BASE_DEC); lapd_module = prefs_register_protocol(proto_lapd, proto_reg_handoff_lapd); diff --git a/epan/dissectors/packet-mikey.c b/epan/dissectors/packet-mikey.c index ccc74e2f28..d1d73bde96 100644 --- a/epan/dissectors/packet-mikey.c +++ b/epan/dissectors/packet-mikey.c @@ -66,10 +66,8 @@ #define PORT_MIKEY 2269 static guint global_mikey_tcp_port = PORT_MIKEY; -static guint mikey_tcp_port; static guint global_mikey_udp_port = PORT_MIKEY; -static guint mikey_udp_port; static const value_string on_off_vals[] = { @@ -1807,17 +1805,18 @@ proto_reg_handoff_mikey(void) { static gboolean inited = FALSE; static dissector_handle_t mikey_handle; + static guint mikey_tcp_port; + static guint mikey_udp_port; if (!inited) { mikey_handle = new_create_dissector_handle(dissect_mikey, proto_mikey); + dissector_add_string("key_mgmt", "mikey", mikey_handle); inited = TRUE; } else { - dissector_delete_string("key_mgmt", "mikey", mikey_handle); dissector_delete("udp.port", mikey_udp_port, mikey_handle); dissector_delete("tcp.port", mikey_tcp_port, mikey_handle); } - dissector_add_string("key_mgmt", "mikey", mikey_handle); dissector_add("udp.port", global_mikey_udp_port, mikey_handle); dissector_add("tcp.port", global_mikey_tcp_port, mikey_handle); diff --git a/epan/dissectors/packet-mpls-echo.c b/epan/dissectors/packet-mpls-echo.c index b8a0c82d0d..4c95656471 100644 --- a/epan/dissectors/packet-mpls-echo.c +++ b/epan/dissectors/packet-mpls-echo.c @@ -136,9 +136,7 @@ static gint ett_mpls_echo_tlv_fec = -1; static gint ett_mpls_echo_tlv_ds_map = -1; static gint ett_mpls_echo_tlv_ilso = -1; -static int mpls_echo_udp_port = 0; - -static guint32 global_mpls_echo_udp_port = UDP_PORT_MPLS_ECHO; +static guint global_mpls_echo_udp_port = UDP_PORT_MPLS_ECHO; static const value_string mpls_echo_msgtype[] = { {1, "MPLS Echo Request"}, @@ -1433,6 +1431,7 @@ proto_reg_handoff_mpls_echo(void) { static gboolean mpls_echo_prefs_initialized = FALSE; static dissector_handle_t mpls_echo_handle; + static guint mpls_echo_udp_port; if(!mpls_echo_prefs_initialized) { mpls_echo_handle = create_dissector_handle(dissect_mpls_echo, diff --git a/epan/dissectors/packet-pana.c b/epan/dissectors/packet-pana.c index fdea12621d..e7a9abacb7 100644 --- a/epan/dissectors/packet-pana.c +++ b/epan/dissectors/packet-pana.c @@ -38,7 +38,6 @@ #include <glib.h> #include <epan/packet.h> -#include <epan/prefs.h> #include <epan/value_string.h> #include <epan/conversation.h> #include <epan/emem.h> @@ -94,8 +93,7 @@ static int hf_pana_response_in = -1; static int hf_pana_response_to = -1; static int hf_pana_time = -1; -static dissector_handle_t pana_handle = NULL; -static dissector_handle_t eap_handle = NULL; +static dissector_handle_t eap_handle; static int hf_pana_flags = -1; static int hf_pana_flag_r = -1; @@ -759,8 +757,6 @@ dissect_pana(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) void proto_register_pana(void) { - module_t *pana_module; - static hf_register_info hf[] = { { &hf_pana_response_in, { "Response In", "pana.response_in", @@ -929,21 +925,20 @@ proto_register_pana(void) proto_register_field_array(proto_pana, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); - /* Register preferences module */ - pana_module = prefs_register_protocol(proto_pana, NULL); - } void proto_reg_handoff_pana(void) { + dissector_handle_t pana_handle; + heur_dissector_add("udp", dissect_pana, proto_pana); pana_handle = new_create_dissector_handle(dissect_pana, proto_pana); dissector_add_handle("udp.port", pana_handle); eap_handle = find_dissector("eap"); - if(!eap_handle) fprintf(stderr,"PANA warning: EAP dissector not found\n"); +/** if(!eap_handle) fprintf(stderr,"PANA warning: EAP dissector not found\n"); **/ } diff --git a/epan/dissectors/packet-radius.c b/epan/dissectors/packet-radius.c index 9d21c47f06..a95b846855 100644 --- a/epan/dissectors/packet-radius.c +++ b/epan/dissectors/packet-radius.c @@ -68,6 +68,8 @@ #include "packet-radius.h" +void proto_reg_handoff_radius(void); + typedef struct _e_radiushdr { guint8 rh_code; guint8 rh_ident; @@ -129,11 +131,9 @@ radius_vendor_info_t no_vendor = {"Unknown Vendor",0,NULL,-1}; radius_attr_info_t no_dictionary_entry = {"Unknown-Attribute",0,FALSE,FALSE,radius_octets, NULL, NULL, -1, -1, -1, -1, -1 }; static dissector_handle_t eap_handle; -static dissector_handle_t radius_handle; static const gchar* shared_secret = ""; static gboolean show_length = FALSE; -static guint alt_port = 0; static guint alt_port_pref = 0; static guint8 authenticator[AUTHENTICATOR_LENGTH]; @@ -1390,19 +1390,6 @@ extern void radius_register_avp_dissector(guint32 vendor_id, guint32 attribute_i } -static void reinit_radius(void) { - if ( alt_port_pref != alt_port ) { - - if (alt_port) - dissector_delete("udp.port", alt_port, radius_handle); - - if (alt_port_pref) - dissector_add("udp.port", alt_port_pref, radius_handle); - - alt_port = alt_port_pref; - } -} - /* Discard and init any state we've saved */ static void radius_init_protocol(void) @@ -1563,14 +1550,14 @@ proto_register_radius(void) proto_radius = proto_register_protocol("Radius Protocol", "RADIUS", "radius"); new_register_dissector("radius", dissect_radius, proto_radius); register_init_routine(&radius_init_protocol); - radius_module = prefs_register_protocol(proto_radius,reinit_radius); + radius_module = prefs_register_protocol(proto_radius, proto_reg_handoff_radius); prefs_register_string_preference(radius_module,"shared_secret","Shared Secret", "Shared secret used to decode User Passwords", &shared_secret); prefs_register_bool_preference(radius_module,"show_length","Show AVP Lengths", "Whether to add or not to the tree the AVP's payload length", &show_length); - prefs_register_uint_preference(radius_module, "alternate_port","Alternate Port", + prefs_register_uint_preference(radius_module, "alternate_port","Alternate Port", "An alternate UDP port to decode as RADIUS", 10, &alt_port_pref); radius_tap = register_tap("radius"); proto_register_prefix("radius",register_radius_fields); @@ -1585,19 +1572,31 @@ proto_register_radius(void) void proto_reg_handoff_radius(void) { + static gboolean initialized = FALSE; + static dissector_handle_t radius_handle; + static guint alt_port; + + if (!initialized) { + radius_handle = find_dissector("radius"); + dissector_add("udp.port", UDP_PORT_RADIUS, radius_handle); + dissector_add("udp.port", UDP_PORT_RADIUS_NEW, radius_handle); + dissector_add("udp.port", UDP_PORT_RADACCT, radius_handle); + dissector_add("udp.port", UDP_PORT_RADACCT_NEW, radius_handle); + + eap_handle = find_dissector("eap"); + + radius_register_avp_dissector(0,8,dissect_framed_ip_address); + radius_register_avp_dissector(0,14,dissect_login_ip_host); + radius_register_avp_dissector(0,23,dissect_framed_ipx_network); + radius_register_avp_dissector(VENDOR_COSINE,5,dissect_cosine_vpvc); + initialized = TRUE; + } else { + if (alt_port != 0) + dissector_delete("udp.port", alt_port, radius_handle); + } - eap_handle = find_dissector("eap"); - - radius_handle = new_create_dissector_handle(dissect_radius, proto_radius); - - dissector_add("udp.port", UDP_PORT_RADIUS, radius_handle); - dissector_add("udp.port", UDP_PORT_RADIUS_NEW, radius_handle); - dissector_add("udp.port", UDP_PORT_RADACCT, radius_handle); - dissector_add("udp.port", UDP_PORT_RADACCT_NEW, radius_handle); - - radius_register_avp_dissector(0,8,dissect_framed_ip_address); - radius_register_avp_dissector(0,14,dissect_login_ip_host); - radius_register_avp_dissector(0,23,dissect_framed_ipx_network); - radius_register_avp_dissector(VENDOR_COSINE,5,dissect_cosine_vpvc); + if (alt_port_pref != 0) + dissector_add("udp.port", alt_port_pref, radius_handle); + alt_port = alt_port_pref; } diff --git a/epan/dissectors/packet-vlan.c b/epan/dissectors/packet-vlan.c index 98e04aefa0..bf8dcc7127 100644 --- a/epan/dissectors/packet-vlan.c +++ b/epan/dissectors/packet-vlan.c @@ -37,7 +37,6 @@ void proto_reg_handoff_vlan(void); -static unsigned int old_q_in_q_ethertype; static unsigned int q_in_q_ethertype = 0x9100; static gboolean vlan_summary_in_tree = TRUE; @@ -181,8 +180,8 @@ proto_register_vlan(void) "Whether the vlan summary line should be shown in the protocol tree", &vlan_summary_in_tree); prefs_register_uint_preference(vlan_module, "qinq_ethertype", - "802.1QinQ Ethertype", - "The Ethertype used to indicate 802.1QinQ VLAN in VLAN tunneling.", + "802.1QinQ (Hex) Ethertype", + "The (hexadecimal) Ethertype used to indicate 802.1QinQ VLAN in VLAN tunneling.", 16, &q_in_q_ethertype); } @@ -192,6 +191,7 @@ proto_reg_handoff_vlan(void) { static gboolean prefs_initialized = FALSE; static dissector_handle_t vlan_handle; + static unsigned int old_q_in_q_ethertype; if (!prefs_initialized) { |