aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2017-01-07 21:31:05 -0500
committerAnders Broman <a.broman58@gmail.com>2017-01-08 08:15:41 +0000
commit3952052426fbf063585b57aefe6b1b2fa57d651d (patch)
tree57bd5f6e8b45294d48266c6d2331917bbd875c3d
parentebd3dc6907c44d642a76f2a459395ffdb728143b (diff)
Restore some MPLS registered dissectors.
Per https://ask.wireshark.org/questions/58532/missing-dissector-pw_eth_cw it appears some MPLS dissectors are still referenced by name and not just for the dissector table created in I1e0c3ae784b71c0145b1f1730a97feae8e9f488f. Change-Id: I27be132f56c879be16f78f76ac0e9688673a47c1 Reviewed-on: https://code.wireshark.org/review/19582 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/dissectors/packet-itdm.c5
-rw-r--r--epan/dissectors/packet-mpls.c5
-rw-r--r--epan/dissectors/packet-pw-atm.c12
-rw-r--r--epan/dissectors/packet-pw-cesopsn.c1
-rw-r--r--epan/dissectors/packet-pw-eth.c5
-rw-r--r--epan/dissectors/packet-pw-fr.c7
-rw-r--r--epan/dissectors/packet-pw-hdlc.c12
-rw-r--r--epan/dissectors/packet-pw-satop.c6
8 files changed, 26 insertions, 27 deletions
diff --git a/epan/dissectors/packet-itdm.c b/epan/dissectors/packet-itdm.c
index cbadee8d3c..37d8b0b53d 100644
--- a/epan/dissectors/packet-itdm.c
+++ b/epan/dissectors/packet-itdm.c
@@ -64,6 +64,8 @@ static int hf_itdm_ctl_cksum = -1;
static gint ett_itdm = -1;
static gint ett_itdm_ctl = -1;
+static dissector_handle_t itdm_handle;
+
/* ZZZZ some magic number.. */
static guint gbl_ItdmMPLSLabel = 0x99887;
static guint gbl_ItdmCTLFlowNo = 0;
@@ -439,6 +441,7 @@ proto_register_itdm(void)
module_t *itdm_module;
proto_itdm = proto_register_protocol("Internal TDM", "ITDM", "itdm");
+ itdm_handle = register_dissector("itdm", dissect_itdm, proto_itdm);
proto_register_field_array(proto_itdm, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -460,11 +463,9 @@ void
proto_reg_handoff_itdm(void)
{
static gboolean Initialized=FALSE;
- static dissector_handle_t itdm_handle;
static guint ItdmMPLSLabel;
if (!Initialized) {
- itdm_handle = create_dissector_handle( dissect_itdm, proto_itdm );
Initialized=TRUE;
} else {
dissector_delete_uint("mpls.label", ItdmMPLSLabel, itdm_handle);
diff --git a/epan/dissectors/packet-mpls.c b/epan/dissectors/packet-mpls.c
index 59e9a206a2..4ea63e589e 100644
--- a/epan/dissectors/packet-mpls.c
+++ b/epan/dissectors/packet-mpls.c
@@ -121,6 +121,7 @@ static expert_field ei_mpls_pw_mcw_error_processing_message = EI_INIT;
static expert_field ei_mpls_invalid_label = EI_INIT;
static dissector_handle_t mpls_handle;
+static dissector_handle_t mpls_pwcw_handle;
#if 0 /*not used yet*/
/*
@@ -641,6 +642,7 @@ proto_register_mpls(void)
expert_register_field_array(expert_mpls, ei, array_length(ei));
mpls_handle = register_dissector("mpls", dissect_mpls, proto_mpls);
+ mpls_pwcw_handle = register_dissector("mplspwcw", dissect_pw_mcw, proto_pw_mcw );
/* FF: mpls subdissector table is indexed by label */
mpls_subdissector_table = register_dissector_table("mpls.label",
@@ -667,8 +669,6 @@ proto_register_mpls(void)
void
proto_reg_handoff_mpls(void)
{
- dissector_handle_t mpls_pwcw_handle;
-
dissector_add_uint("ethertype", ETHERTYPE_MPLS, mpls_handle);
dissector_add_uint("ethertype", ETHERTYPE_MPLS_MULTI, mpls_handle);
dissector_add_uint("ppp.protocol", PPP_MPLS_UNI, mpls_handle);
@@ -688,7 +688,6 @@ proto_reg_handoff_mpls(void)
dissector_add_uint_with_preference("udp.port", UDP_PORT_MPLS_OVER_UDP, mpls_handle);
dissector_add_uint("vxlan.next_proto", VXLAN_MPLS, mpls_handle);
- mpls_pwcw_handle = create_dissector_handle( dissect_pw_mcw, proto_pw_mcw );
dissector_add_uint( "mpls.label", MPLS_LABEL_INVALID, mpls_pwcw_handle );
dissector_ipv6 = find_dissector_add_dependency("ipv6", proto_pw_mcw );
diff --git a/epan/dissectors/packet-pw-atm.c b/epan/dissectors/packet-pw-atm.c
index c770a24a24..609c1e7112 100644
--- a/epan/dissectors/packet-pw-atm.c
+++ b/epan/dissectors/packet-pw-atm.c
@@ -1905,6 +1905,10 @@ proto_register_pw_atm_ata(void)
dh_control_word = register_dissector("mpls_pw_atm_control_word" ,dissect_control_word ,proto_control_word);
dh_cell = register_dissector("mpls_pw_atm_cell" ,dissect_cell ,proto_cell);
dh_cell_header = register_dissector("mpls_pw_atm_cell_header",dissect_cell_header ,proto_cell_header);
+ register_dissector("mpls_pw_atm_aal5_sdu" ,dissect_aal5_sdu ,proto_aal5_sdu);
+ register_dissector("mpls_pw_atm_11_or_aal5_pdu" ,dissect_11_or_aal5_pdu ,proto_11_or_aal5_pdu);
+ register_dissector("mpls_pw_atm_n1_cw" ,dissect_n1_cw ,proto_n1_cw);
+ register_dissector("mpls_pw_atm_n1_nocw" ,dissect_n1_nocw ,proto_n1_nocw);
{
static const char description_allow_cw_length_nonzero[] =
"Enable to allow non-zero Length in Control Word."
@@ -1955,13 +1959,13 @@ void
proto_reg_handoff_pw_atm_ata(void)
{
dissector_handle_t h;
- h = create_dissector_handle( dissect_n1_cw, proto_n1_cw );
+ h = find_dissector("mpls_pw_atm_n1_cw");
dissector_add_for_decode_as( "mpls.label", h );
- h = create_dissector_handle( dissect_n1_nocw, proto_n1_nocw );
+ h = find_dissector("mpls_pw_atm_n1_nocw");
dissector_add_for_decode_as( "mpls.label", h );
- h = create_dissector_handle( dissect_11_or_aal5_pdu, proto_11_or_aal5_pdu );
+ h = find_dissector("mpls_pw_atm_11_or_aal5_pdu");
dissector_add_for_decode_as( "mpls.label", h );
- h = create_dissector_handle( dissect_aal5_sdu, proto_aal5_sdu );
+ h = find_dissector("mpls_pw_atm_aal5_sdu");
dissector_add_for_decode_as( "mpls.label", h );
dh_atm_truncated = find_dissector("atm_pw_truncated");
diff --git a/epan/dissectors/packet-pw-cesopsn.c b/epan/dissectors/packet-pw-cesopsn.c
index 882e2c092a..76c7ec50b7 100644
--- a/epan/dissectors/packet-pw-cesopsn.c
+++ b/epan/dissectors/packet-pw-cesopsn.c
@@ -445,6 +445,7 @@ void proto_register_pw_cesopsn(void)
proto_register_subtree_array(ett_array, array_length(ett_array));
expert_pwcesopsn = expert_register_protocol(proto);
expert_register_field_array(expert_pwcesopsn, ei, array_length(ei));
+ register_dissector("pw_cesopsn_mpls", dissect_pw_cesopsn_mpls, proto);
pw_cesopsn_udp_handle = register_dissector("pw_cesopsn_udp", dissect_pw_cesopsn_udp, proto);
}
diff --git a/epan/dissectors/packet-pw-eth.c b/epan/dissectors/packet-pw-eth.c
index d157c0ce0a..2c245331f7 100644
--- a/epan/dissectors/packet-pw-eth.c
+++ b/epan/dissectors/packet-pw-eth.c
@@ -193,6 +193,8 @@ proto_register_pw_eth(void)
"pwethheuristic");
proto_register_field_array(proto_pw_eth_cw, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
+ pw_eth_handle_cw = register_dissector("pw_eth_cw", dissect_pw_eth_cw, proto_pw_eth_cw);
+ pw_eth_handle_nocw = register_dissector("pw_eth_nocw", dissect_pw_eth_nocw, proto_pw_eth_nocw);
pw_eth_handle_heuristic = register_dissector("pw_eth_heuristic", dissect_pw_eth_heuristic,
proto_pw_eth_heuristic);
}
@@ -202,10 +204,7 @@ proto_reg_handoff_pw_eth(void)
{
eth_withoutfcs_handle = find_dissector_add_dependency("eth_withoutfcs", proto_pw_eth_cw);
- pw_eth_handle_cw = create_dissector_handle( dissect_pw_eth_cw, proto_pw_eth_cw );
dissector_add_for_decode_as("mpls.label", pw_eth_handle_cw);
-
- pw_eth_handle_nocw = create_dissector_handle( dissect_pw_eth_nocw, proto_pw_eth_nocw );
dissector_add_for_decode_as("mpls.label", pw_eth_handle_nocw);
dissector_add_for_decode_as("mpls.label", pw_eth_handle_heuristic);
diff --git a/epan/dissectors/packet-pw-fr.c b/epan/dissectors/packet-pw-fr.c
index b7134f9878..565a64f94f 100644
--- a/epan/dissectors/packet-pw-fr.c
+++ b/epan/dissectors/packet-pw-fr.c
@@ -67,7 +67,7 @@ static const value_string vals_frg[] = {
static dissector_handle_t fr_stripped_address_handle;
-
+static dissector_handle_t pw_fr_mpls_handle;
static int
dissect_pw_fr( tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _U_ )
@@ -305,17 +305,14 @@ static hf_register_info hf[] = {
proto_register_subtree_array(ett, array_length(ett));
expert_pwfr = expert_register_protocol(proto_encaps);
expert_register_field_array(expert_pwfr, ei, array_length(ei));
+ pw_fr_mpls_handle = register_dissector("pw_fr", dissect_pw_fr, proto_encaps );
}
void
proto_reg_handoff_pw_fr(void)
{
- dissector_handle_t pw_fr_mpls_handle;
-
- pw_fr_mpls_handle = create_dissector_handle( dissect_pw_fr, proto_encaps );
dissector_add_for_decode_as("mpls.label", pw_fr_mpls_handle);
-
fr_stripped_address_handle = find_dissector_add_dependency("fr_stripped_address", proto_encaps);
}
diff --git a/epan/dissectors/packet-pw-hdlc.c b/epan/dissectors/packet-pw-hdlc.c
index d323b7c328..915095141e 100644
--- a/epan/dissectors/packet-pw-hdlc.c
+++ b/epan/dissectors/packet-pw-hdlc.c
@@ -42,6 +42,8 @@ void proto_reg_handoff_pw_hdlc(void);
static dissector_handle_t ppp_handle;
static dissector_handle_t fr_handle;
+static dissector_handle_t pw_hdlc_nocw_fr_handle;
+static dissector_handle_t pw_ppp_handle;
static gint proto_pw_hdlc_nocw_fr = -1;
static gint proto_pw_hdlc_nocw_hdlc_ppp = -1;
@@ -218,16 +220,14 @@ void proto_register_pw_hdlc(void)
proto_register_field_array(proto_pw_hdlc_nocw_fr, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
+
+ pw_hdlc_nocw_fr_handle = register_dissector("pw_hdlc_nocw_fr", dissect_pw_hdlc_nocw_fr, proto_pw_hdlc_nocw_fr );
+ pw_ppp_handle = register_dissector("pw_hdlc_nocw_hdlc_ppp", dissect_pw_hdlc_nocw_hdlc_ppp, proto_pw_hdlc_nocw_hdlc_ppp );
}
void proto_reg_handoff_pw_hdlc(void)
{
- dissector_handle_t pw_fr_handle, pw_ppp_handle;
-
- pw_fr_handle = create_dissector_handle( dissect_pw_hdlc_nocw_fr, proto_pw_hdlc_nocw_fr );
- dissector_add_for_decode_as( "mpls.label", pw_fr_handle );
-
- pw_ppp_handle = create_dissector_handle( dissect_pw_hdlc_nocw_hdlc_ppp, proto_pw_hdlc_nocw_hdlc_ppp );
+ dissector_add_for_decode_as( "mpls.label", pw_hdlc_nocw_fr_handle );
dissector_add_for_decode_as( "mpls.label", pw_ppp_handle );
ppp_handle = find_dissector_add_dependency( "ppp", proto_pw_hdlc_nocw_hdlc_ppp );
diff --git a/epan/dissectors/packet-pw-satop.c b/epan/dissectors/packet-pw-satop.c
index 36802d95c8..821d8a748b 100644
--- a/epan/dissectors/packet-pw-satop.c
+++ b/epan/dissectors/packet-pw-satop.c
@@ -63,6 +63,7 @@ static expert_field ei_cw_packet_size_too_small = EI_INIT;
static dissector_handle_t pw_padding_handle;
static dissector_handle_t pw_satop_udp_handle;
+static dissector_handle_t pw_satop_mpls_handle;
const char pwc_longname_pw_satop[] = "SAToP (no RTP support)";
@@ -461,19 +462,16 @@ void proto_register_pw_satop(void)
proto_register_subtree_array(ett_array, array_length(ett_array));
expert_pwsatop = expert_register_protocol(proto);
expert_register_field_array(expert_pwsatop, ei, array_length(ei));
+ pw_satop_mpls_handle = register_dissector("pw_satop_mpls", dissect_pw_satop_mpls, proto);
pw_satop_udp_handle = register_dissector("pw_satop_udp", dissect_pw_satop_udp, proto);
}
void proto_reg_handoff_pw_satop(void)
{
- dissector_handle_t pw_satop_mpls_handle;
-
pw_padding_handle = find_dissector_add_dependency("pw_padding", proto);
/* For Decode As */
- pw_satop_mpls_handle = create_dissector_handle( dissect_pw_satop_mpls, proto );
dissector_add_for_decode_as("mpls.label", pw_satop_mpls_handle);
-
dissector_add_for_decode_as_with_preference("udp.port", pw_satop_udp_handle);
}