aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwmeier <wmeier@f5534014-38df-0310-8fa8-9805f1628bb7>2008-09-30 14:46:48 +0000
committerwmeier <wmeier@f5534014-38df-0310-8fa8-9805f1628bb7>2008-09-30 14:46:48 +0000
commit6261a38072cc24ed414e552af9abad125d2a4d67 (patch)
treef95e58b4cc141ad010b91cae889d19f9b04ed295
parent9bf75f5ca3da8e6a32e9c5025da371997724364a (diff)
Minor cleanup related to proto_register, proto_reg_handoff
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@26307 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r--epan/dissectors/packet-dlm3.c17
-rw-r--r--epan/dissectors/packet-lapd.c34
-rw-r--r--epan/dissectors/packet-mikey.c7
-rw-r--r--epan/dissectors/packet-mpls-echo.c5
-rw-r--r--epan/dissectors/packet-pana.c13
-rw-r--r--epan/dissectors/packet-radius.c59
-rw-r--r--epan/dissectors/packet-vlan.c6
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)
{