aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2016-06-30 20:41:45 -0400
committerAnders Broman <a.broman58@gmail.com>2016-07-01 14:26:20 +0000
commita062c802364fd83d43f934560149f2ddd1fee6a3 (patch)
treee5c9240b24a5b86c12b4a9481a2bd93e18b828f5 /epan/dissectors/asn1
parentd4add25cb77773d9564dfc8f340ab5ce491a7d20 (diff)
ASN.1 dissectors - don't try to find yourself.
If an ASN.1 dissector is calling register_dissector for itself in its proto_register_xxx function and then calling find_dissector for itself in its proto_reg_handoff_xxx function then just create a static handle for that dissector and use the return value of register_dissector, so the find isn't necessary. Change-Id: I911bdadc2fb4259601c141b955e741a2369cc447 Reviewed-on: https://code.wireshark.org/review/16233 Reviewed-by: Michael Mann <mmann78@netscape.net> 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>
Diffstat (limited to 'epan/dissectors/asn1')
-rw-r--r--epan/dissectors/asn1/acse/packet-acse-template.c6
-rw-r--r--epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c3
-rw-r--r--epan/dissectors/asn1/camel/packet-camel-template.c10
-rw-r--r--epan/dissectors/asn1/cmip/packet-cmip-template.c6
-rw-r--r--epan/dissectors/asn1/disp/packet-disp-template.c9
-rw-r--r--epan/dissectors/asn1/dsp/packet-dsp-template.c7
-rw-r--r--epan/dissectors/asn1/goose/packet-goose-template.c7
-rw-r--r--epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c3
-rw-r--r--epan/dissectors/asn1/h225/packet-h225-template.c7
-rw-r--r--epan/dissectors/asn1/h245/packet-h245-template.c9
-rw-r--r--epan/dissectors/asn1/h248/packet-h248-template.c6
-rw-r--r--epan/dissectors/asn1/h283/packet-h283-template.c7
-rw-r--r--epan/dissectors/asn1/h501/packet-h501-template.c3
-rw-r--r--epan/dissectors/asn1/hnbap/packet-hnbap-template.c6
-rw-r--r--epan/dissectors/asn1/idmp/packet-idmp-template.c5
-rw-r--r--epan/dissectors/asn1/ilp/packet-ilp-template.c6
-rw-r--r--epan/dissectors/asn1/inap/packet-inap-template.c3
-rw-r--r--epan/dissectors/asn1/lcsap/packet-lcsap-template.c6
-rw-r--r--epan/dissectors/asn1/ldap/packet-ldap-template.c3
-rw-r--r--epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c5
-rw-r--r--epan/dissectors/asn1/nbap/packet-nbap-template.c7
-rw-r--r--epan/dissectors/asn1/p1/packet-p1-template.c8
-rw-r--r--epan/dissectors/asn1/pcap/packet-pcap-template.c3
-rw-r--r--epan/dissectors/asn1/ranap/packet-ranap-template.c7
-rw-r--r--epan/dissectors/asn1/rnsap/packet-rnsap-template.c7
-rw-r--r--epan/dissectors/asn1/ros/packet-ros-template.c4
-rw-r--r--epan/dissectors/asn1/rua/packet-rua-template.c6
-rw-r--r--epan/dissectors/asn1/s1ap/packet-s1ap-template.c6
-rw-r--r--epan/dissectors/asn1/sabp/packet-sabp-template.c12
-rw-r--r--epan/dissectors/asn1/snmp/packet-snmp-template.c4
-rw-r--r--epan/dissectors/asn1/spnego/packet-spnego-template.c16
-rw-r--r--epan/dissectors/asn1/sv/packet-sv-template.c8
-rw-r--r--epan/dissectors/asn1/ulp/packet-ulp-template.c7
-rw-r--r--epan/dissectors/asn1/x2ap/packet-x2ap-template.c6
34 files changed, 92 insertions, 126 deletions
diff --git a/epan/dissectors/asn1/acse/packet-acse-template.c b/epan/dissectors/asn1/acse/packet-acse-template.c
index b438d24eac..f783b87061 100644
--- a/epan/dissectors/asn1/acse/packet-acse-template.c
+++ b/epan/dissectors/asn1/acse/packet-acse-template.c
@@ -75,6 +75,8 @@ static expert_field ei_acse_dissector_not_available = EI_INIT;
static expert_field ei_acse_malformed = EI_INIT;
static expert_field ei_acse_invalid_oid = EI_INIT;
+static dissector_handle_t acse_handle = NULL;
+
/* indirect_reference, used to pick up the signalling so we know what
kind of data is transferred in SES_DATA_TRANSFER_PDUs */
static guint32 indir_ref=0;
@@ -281,7 +283,7 @@ void proto_register_acse(void) {
/* Register protocol */
proto_acse = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("acse", dissect_acse, proto_acse);
+ acse_handle = register_dissector("acse", dissect_acse, proto_acse);
/* Register connectionless protocol */
proto_clacse = proto_register_protocol(CLPNAME, CLPSNAME, CLPFNAME);
@@ -298,8 +300,6 @@ void proto_register_acse(void) {
/*--- proto_reg_handoff_acse -------------------------------------------*/
void proto_reg_handoff_acse(void) {
/*#include "packet-acse-dis-tab.c"*/
- dissector_handle_t acse_handle = find_dissector("acse");
-
oid_add_from_string("id-aCSE","2.2.3.1.1");
register_ber_oid_dissector_handle(ACSE_APDU_OID, acse_handle, proto_acse, "id-as-acse");
diff --git a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
index 9249203dd9..8694cce54c 100644
--- a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
+++ b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
@@ -4563,7 +4563,6 @@ proto_reg_handoff_ansi_map(void)
if(!ansi_map_prefs_initialized)
{
ansi_map_prefs_initialized = TRUE;
- ansi_map_handle = find_dissector("ansi_map");
}
else
{
@@ -5469,7 +5468,7 @@ void proto_register_ansi_map(void) {
expert_ansi_map = expert_register_protocol(proto_ansi_map);
expert_register_field_array(expert_ansi_map, ei, array_length(ei));
- register_dissector("ansi_map", dissect_ansi_map, proto_ansi_map);
+ ansi_map_handle = register_dissector("ansi_map", dissect_ansi_map, proto_ansi_map);
is637_tele_id_dissector_table =
register_dissector_table("ansi_map.tele_id", "IS-637 Teleservice ID", proto_ansi_map,
diff --git a/epan/dissectors/asn1/camel/packet-camel-template.c b/epan/dissectors/asn1/camel/packet-camel-template.c
index 9c4e4cd3e0..6f11179cfc 100644
--- a/epan/dissectors/asn1/camel/packet-camel-template.c
+++ b/epan/dissectors/asn1/camel/packet-camel-template.c
@@ -1311,10 +1311,6 @@ void proto_reg_handoff_camel(void) {
if (!camel_prefs_initialized) {
camel_prefs_initialized = TRUE;
- camel_handle = find_dissector("camel");
- camel_v1_handle = find_dissector("camel-v1");
- camel_v2_handle = find_dissector("camel-v2");
-
register_ber_oid_dissector_handle("0.4.0.0.1.0.50.0",camel_v1_handle, proto_camel, "CAP-v1-gsmSSF-to-gsmSCF-AC" );
register_ber_oid_dissector_handle("0.4.0.0.1.0.50.1",camel_v2_handle, proto_camel, "CAP-v2-gsmSSF-to-gsmSCF-AC" );
@@ -1551,9 +1547,9 @@ void proto_register_camel(void) {
/* Register protocol */
proto_camel = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("camel", dissect_camel, proto_camel);
- register_dissector("camel-v1", dissect_camel_v1, proto_camel);
- register_dissector("camel-v2", dissect_camel_v2, proto_camel);
+ camel_handle = register_dissector("camel", dissect_camel, proto_camel);
+ camel_v1_handle = register_dissector("camel-v1", dissect_camel_v1, proto_camel);
+ camel_v2_handle = register_dissector("camel-v2", dissect_camel_v2, proto_camel);
proto_register_field_array(proto_camel, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
diff --git a/epan/dissectors/asn1/cmip/packet-cmip-template.c b/epan/dissectors/asn1/cmip/packet-cmip-template.c
index dbe11fa9ac..f93cc7ba34 100644
--- a/epan/dissectors/asn1/cmip/packet-cmip-template.c
+++ b/epan/dissectors/asn1/cmip/packet-cmip-template.c
@@ -64,6 +64,8 @@ static expert_field ei_wrong_spdu_type = EI_INIT;
static guint32 opcode;
+static dissector_handle_t cmip_handle = NULL;
+
/* Dissector table */
static dissector_table_t attribute_id_dissector_table;
@@ -187,7 +189,7 @@ void proto_register_cmip(void) {
/* Register protocol */
proto_cmip = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("cmip", dissect_cmip, proto_cmip);
+ cmip_handle = register_dissector("cmip", dissect_cmip, proto_cmip);
/* Register fields and subtrees */
proto_register_field_array(proto_cmip, hf, array_length(hf));
@@ -205,8 +207,6 @@ void proto_register_cmip(void) {
/*--- proto_reg_handoff_cmip -------------------------------------------*/
void proto_reg_handoff_cmip(void) {
- dissector_handle_t cmip_handle = find_dissector("cmip");
-
register_ber_oid_dissector_handle("2.9.0.0.2", cmip_handle, proto_cmip, "cmip");
register_ber_oid_dissector_handle("2.9.1.1.4", cmip_handle, proto_cmip, "joint-iso-itu-t(2) ms(9) cmip(1) cmip-pci(1) abstractSyntax(4)");
diff --git a/epan/dissectors/asn1/disp/packet-disp-template.c b/epan/dissectors/asn1/disp/packet-disp-template.c
index 1250d38e89..877db29565 100644
--- a/epan/dissectors/asn1/disp/packet-disp-template.c
+++ b/epan/dissectors/asn1/disp/packet-disp-template.c
@@ -73,6 +73,8 @@ static expert_field ei_disp_unsupported_errcode = EI_INIT;
static expert_field ei_disp_unsupported_pdu = EI_INIT;
static expert_field ei_disp_zero_pdu = EI_INIT;
+static dissector_handle_t disp_handle = NULL;
+
#include "packet-disp-fn.c"
/*
@@ -219,7 +221,7 @@ void proto_register_disp(void) {
/* Register protocol */
proto_disp = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("disp", dissect_disp, proto_disp);
+ disp_handle = register_dissector("disp", dissect_disp, proto_disp);
/* Register fields and subtrees */
proto_register_field_array(proto_disp, hf, array_length(hf));
@@ -241,8 +243,6 @@ void proto_register_disp(void) {
/*--- proto_reg_handoff_disp --- */
void proto_reg_handoff_disp(void) {
- dissector_handle_t disp_handle;
-
#include "packet-disp-dis-tab.c"
/* APPLICATION CONTEXT */
@@ -253,9 +253,6 @@ void proto_reg_handoff_disp(void) {
oid_add_from_string("id-ac-reliable-shadow-supplier-initiated","2.5.3.7");
/* ABSTRACT SYNTAXES */
-
- disp_handle = find_dissector("disp");
-
register_ros_oid_dissector_handle("2.5.9.3", disp_handle, 0, "id-as-directory-shadow", FALSE);
register_rtse_oid_dissector_handle("2.5.9.5", disp_handle, 0, "id-as-directory-reliable-shadow", FALSE);
register_rtse_oid_dissector_handle("2.5.9.6", disp_handle, 0, "id-as-directory-reliable-binding", FALSE);
diff --git a/epan/dissectors/asn1/dsp/packet-dsp-template.c b/epan/dissectors/asn1/dsp/packet-dsp-template.c
index c39870676d..5ab2e745ed 100644
--- a/epan/dissectors/asn1/dsp/packet-dsp-template.c
+++ b/epan/dissectors/asn1/dsp/packet-dsp-template.c
@@ -69,6 +69,8 @@ static expert_field ei_dsp_zero_pdu = EI_INIT;
#include "packet-dsp-fn.c"
+static dissector_handle_t dsp_handle;
+
/*
* Dissect X518 PDUs inside a ROS PDUs
*/
@@ -291,7 +293,7 @@ void proto_register_dsp(void) {
/* Register protocol */
proto_dsp = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("dsp", dissect_dsp, proto_dsp);
+ dsp_handle = register_dissector("dsp", dissect_dsp, proto_dsp);
/* Register fields and subtrees */
proto_register_field_array(proto_dsp, hf, array_length(hf));
@@ -314,8 +316,6 @@ void proto_register_dsp(void) {
/*--- proto_reg_handoff_dsp --- */
void proto_reg_handoff_dsp(void) {
- dissector_handle_t dsp_handle;
-
#include "packet-dsp-dis-tab.c"
/* APPLICATION CONTEXT */
@@ -328,7 +328,6 @@ void proto_reg_handoff_dsp(void) {
tpkt_handle = find_dissector("tpkt");
/* Register DSP with ROS (with no use of RTSE) */
- dsp_handle = find_dissector("dsp");
register_ros_oid_dissector_handle("2.5.9.2", dsp_handle, 0, "id-as-directory-system", FALSE);
}
diff --git a/epan/dissectors/asn1/goose/packet-goose-template.c b/epan/dissectors/asn1/goose/packet-goose-template.c
index b396a6f617..8671f44c08 100644
--- a/epan/dissectors/asn1/goose/packet-goose-template.c
+++ b/epan/dissectors/asn1/goose/packet-goose-template.c
@@ -57,6 +57,8 @@ static int ett_goose = -1;
#include "packet-goose-fn.c"
+static dissector_handle_t goose_handle = NULL;
+
/*
* Dissect GOOSE PDUs inside a PPDU.
*/
@@ -141,7 +143,7 @@ void proto_register_goose(void) {
/* Register protocol */
proto_goose = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("goose", dissect_goose, proto_goose);
+ goose_handle = register_dissector("goose", dissect_goose, proto_goose);
/* Register fields and subtrees */
proto_register_field_array(proto_goose, hf, array_length(hf));
@@ -153,8 +155,5 @@ void proto_register_goose(void) {
/*--- proto_reg_handoff_goose --- */
void proto_reg_handoff_goose(void) {
- dissector_handle_t goose_handle;
- goose_handle = find_dissector("goose");
-
dissector_add_uint("ethertype", ETHERTYPE_IEC61850_GOOSE, goose_handle);
}
diff --git a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
index e36db21b2e..ff2a9a708e 100644
--- a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
+++ b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
@@ -2636,7 +2636,6 @@ void proto_reg_handoff_gsm_map(void) {
gsm_sms_handle = find_dissector_add_dependency("gsm_sms", proto_gsm_map);
bssap_handle = find_dissector_add_dependency("gsm_a_bssmap", proto_gsm_map);
- map_handle = find_dissector("gsm_map");
oid_add_from_string("itu(0) administration(2) japan(440)","0.2.440" );
register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");
register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
@@ -3127,7 +3126,7 @@ void proto_register_gsm_map(void) {
/* Register protocol */
proto_gsm_map_ms = proto_gsm_map_dialogue = proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
+ map_handle = register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
register_dissector("gsm_map_sccp", dissect_gsm_map_sccp, proto_gsm_map);
/* Register fields and subtrees */
diff --git a/epan/dissectors/asn1/h225/packet-h225-template.c b/epan/dissectors/asn1/h225/packet-h225-template.c
index 35924cbc59..dd12c6f2b7 100644
--- a/epan/dissectors/asn1/h225/packet-h225-template.c
+++ b/epan/dissectors/asn1/h225/packet-h225-template.c
@@ -94,6 +94,8 @@ static h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_ke
static h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packet_info *pinfo, e_guid_t *guid, int category);
static h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pinfo, e_guid_t *guid, int category);
+
+static dissector_handle_t h225ras_handle;
static dissector_handle_t data_handle;
/* Subdissector tables */
static dissector_table_t nsp_object_dissector_table;
@@ -900,7 +902,7 @@ void proto_register_h225(void) {
register_dissector(PFNAME, dissect_h225_H323UserInformation, proto_h225);
register_dissector("h323ui",dissect_h225_H323UserInformation, proto_h225);
- register_dissector("h225.ras", dissect_h225_h225_RasMessage, proto_h225);
+ h225ras_handle = register_dissector("h225.ras", dissect_h225_h225_RasMessage, proto_h225);
nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.225 NonStandardParameter (object)", proto_h225, FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
nsp_h221_dissector_table = register_dissector_table("h225.nsp.h221", "H.225 NonStandardParameter (h221)", proto_h225, FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
@@ -930,11 +932,10 @@ void
proto_reg_handoff_h225(void)
{
static gboolean h225_prefs_initialized = FALSE;
- static dissector_handle_t h225ras_handle, q931_tpkt_handle;
+ static dissector_handle_t q931_tpkt_handle;
static guint saved_h225_tls_port;
if (!h225_prefs_initialized) {
- h225ras_handle=find_dissector("h225.ras");
dissector_add_uint("udp.port", UDP_PORT_RAS1, h225ras_handle);
dissector_add_uint("udp.port", UDP_PORT_RAS2, h225ras_handle);
diff --git a/epan/dissectors/asn1/h245/packet-h245-template.c b/epan/dissectors/asn1/h245/packet-h245-template.c
index 426625fbea..ab42a0c988 100644
--- a/epan/dissectors/asn1/h245/packet-h245-template.c
+++ b/epan/dissectors/asn1/h245/packet-h245-template.c
@@ -62,6 +62,7 @@ static dissector_table_t nsp_object_dissector_table;
static dissector_table_t nsp_h221_dissector_table;
static dissector_table_t gef_name_dissector_table;
static dissector_table_t gef_content_dissector_table;
+static dissector_handle_t h245_handle;
static dissector_handle_t nsp_handle;
static dissector_handle_t data_handle;
static dissector_handle_t MultimediaSystemControlMessage_handle;
@@ -538,8 +539,8 @@ void proto_register_h245(void) {
"Show h245 info in reversed order",
"Whether the dissector should print items of h245 Info column in reversed order",
&info_col_fmt_prepend);
- register_dissector("h245dg", dissect_h245_h245, proto_h245);
- register_dissector("h245", dissect_h245, proto_h245);
+ MultimediaSystemControlMessage_handle = register_dissector("h245dg", dissect_h245_h245, proto_h245);
+ h245_handle = register_dissector("h245", dissect_h245, proto_h245);
nsp_object_dissector_table = register_dissector_table("h245.nsp.object", "H.245 NonStandardParameter (object)", proto_h245, FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
nsp_h221_dissector_table = register_dissector_table("h245.nsp.h221", "H.245 NonStandardParameter (h221)", proto_h245, FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
@@ -603,17 +604,13 @@ void proto_register_h245(void) {
/*--- proto_reg_handoff_h245 ---------------------------------------*/
void proto_reg_handoff_h245(void) {
- dissector_handle_t h245_handle;
-
rtcp_handle = find_dissector("rtcp");
data_handle = find_dissector("data");
h263_handle = find_dissector("h263data");
amr_handle = find_dissector("amr_if2_nb");
- h245_handle = find_dissector("h245");
dissector_add_for_decode_as("tcp.port", h245_handle);
- MultimediaSystemControlMessage_handle = find_dissector("h245dg");
dissector_add_for_decode_as("udp.port", MultimediaSystemControlMessage_handle);
}
diff --git a/epan/dissectors/asn1/h248/packet-h248-template.c b/epan/dissectors/asn1/h248/packet-h248-template.c
index 67c32b22ae..6b9adc7589 100644
--- a/epan/dissectors/asn1/h248/packet-h248-template.c
+++ b/epan/dissectors/asn1/h248/packet-h248-template.c
@@ -2364,8 +2364,8 @@ void proto_register_h248(void) {
/* Register protocol */
proto_h248 = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("h248", dissect_h248, proto_h248);
- register_dissector("h248.tpkt", dissect_h248_tpkt, proto_h248);
+ h248_handle = register_dissector("h248", dissect_h248, proto_h248);
+ h248_tpkt_handle = register_dissector("h248.tpkt", dissect_h248_tpkt, proto_h248);
/* Register fields and subtrees */
proto_register_field_array(proto_h248, hf, array_length(hf));
@@ -2411,8 +2411,6 @@ void proto_reg_handoff_h248(void) {
static guint32 tcp_port;
if (!initialized) {
- h248_handle = find_dissector("h248");
- h248_tpkt_handle = find_dissector("h248.tpkt");
dissector_add_uint("mtp3.service_indicator", MTP_SI_GCP, h248_handle);
h248_term_handle = find_dissector_add_dependency("h248term", proto_h248);
initialized = TRUE;
diff --git a/epan/dissectors/asn1/h283/packet-h283-template.c b/epan/dissectors/asn1/h283/packet-h283-template.c
index 34d9d0e6fe..14f2818ab2 100644
--- a/epan/dissectors/asn1/h283/packet-h283-template.c
+++ b/epan/dissectors/asn1/h283/packet-h283-template.c
@@ -48,6 +48,8 @@ static int ett_h283 = -1;
static dissector_handle_t rdc_pdu_handle;
static dissector_handle_t rdc_device_list_handle;
static dissector_handle_t data_handle;
+static dissector_handle_t h283_udp_handle;
+
static gboolean info_is_set;
@@ -90,16 +92,13 @@ void proto_register_h283(void) {
proto_register_field_array(proto_h283, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector(PFNAME, dissect_h283_udp, proto_h283);
+ h283_udp_handle = register_dissector(PFNAME, dissect_h283_udp, proto_h283);
}
/*--- proto_reg_handoff_h283 -------------------------------------------*/
void proto_reg_handoff_h283(void)
{
- dissector_handle_t h283_udp_handle;
-
- h283_udp_handle = find_dissector(PFNAME);
dissector_add_for_decode_as("udp.port", h283_udp_handle);
rdc_pdu_handle = find_dissector_add_dependency("rdc", proto_h283);
diff --git a/epan/dissectors/asn1/h501/packet-h501-template.c b/epan/dissectors/asn1/h501/packet-h501-template.c
index f4ee5e2c50..a995701c96 100644
--- a/epan/dissectors/asn1/h501/packet-h501-template.c
+++ b/epan/dissectors/asn1/h501/packet-h501-template.c
@@ -109,7 +109,7 @@ void proto_register_h501(void) {
proto_register_field_array(proto_h501, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector(PFNAME, dissect_h501_pdu, proto_h501);
+ h501_pdu_handle = register_dissector(PFNAME, dissect_h501_pdu, proto_h501);
h501_module = prefs_register_protocol(proto_h501, proto_reg_handoff_h501);
prefs_register_uint_preference(h501_module, "udp.port",
@@ -137,7 +137,6 @@ void proto_reg_handoff_h501(void)
static guint saved_h501_tcp_port;
if (!h501_prefs_initialized) {
- h501_pdu_handle = find_dissector(PFNAME);
h501_udp_handle = create_dissector_handle(dissect_h501_udp, proto_h501);
h501_tcp_handle = create_dissector_handle(dissect_h501_tcp, proto_h501);
h501_prefs_initialized = TRUE;
diff --git a/epan/dissectors/asn1/hnbap/packet-hnbap-template.c b/epan/dissectors/asn1/hnbap/packet-hnbap-template.c
index 70458d9a87..acac87f20a 100644
--- a/epan/dissectors/asn1/hnbap/packet-hnbap-template.c
+++ b/epan/dissectors/asn1/hnbap/packet-hnbap-template.c
@@ -69,6 +69,8 @@ static dissector_table_t hnbap_proc_imsg_dissector_table;
static dissector_table_t hnbap_proc_sout_dissector_table;
static dissector_table_t hnbap_proc_uout_dissector_table;
+static dissector_handle_t hnbap_handle;
+
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
@@ -163,7 +165,7 @@ module_t *hnbap_module;
proto_register_subtree_array(ett, array_length(ett));
/* Register dissector */
- register_dissector("hnbap", dissect_hnbap, proto_hnbap);
+ hnbap_handle = register_dissector("hnbap", dissect_hnbap, proto_hnbap);
/* Register dissector tables */
hnbap_ies_dissector_table = register_dissector_table("hnbap.ies", "HNBAP-PROTOCOL-IES", proto_hnbap, FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
@@ -182,11 +184,9 @@ void
proto_reg_handoff_hnbap(void)
{
static gboolean initialized = FALSE;
- static dissector_handle_t hnbap_handle;
static guint sctp_port;
if (!initialized) {
- hnbap_handle = find_dissector("hnbap");
dissector_add_uint("sctp.ppi", HNBAP_PAYLOAD_PROTOCOL_ID, hnbap_handle);
initialized = TRUE;
#include "packet-hnbap-dis-tab.c"
diff --git a/epan/dissectors/asn1/idmp/packet-idmp-template.c b/epan/dissectors/asn1/idmp/packet-idmp-template.c
index 3dc87e0e07..c54a9e7294 100644
--- a/epan/dissectors/asn1/idmp/packet-idmp-template.c
+++ b/epan/dissectors/asn1/idmp/packet-idmp-template.c
@@ -336,7 +336,7 @@ void proto_register_idmp(void)
proto_register_field_array(proto_idmp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("idmp", dissect_idmp_tcp, proto_idmp);
+ idmp_handle = register_dissector("idmp", dissect_idmp_tcp, proto_idmp);
register_init_routine (&idmp_reassemble_init);
register_cleanup_routine (&idmp_reassemble_cleanup);
@@ -368,9 +368,6 @@ void proto_register_idmp(void)
/*--- proto_reg_handoff_idm --- */
void proto_reg_handoff_idm(void) {
- /* remember the idm handler for change in preferences */
- idmp_handle = find_dissector(PFNAME);
-
}
diff --git a/epan/dissectors/asn1/ilp/packet-ilp-template.c b/epan/dissectors/asn1/ilp/packet-ilp-template.c
index ea57451b2b..0f6cff3ca6 100644
--- a/epan/dissectors/asn1/ilp/packet-ilp-template.c
+++ b/epan/dissectors/asn1/ilp/packet-ilp-template.c
@@ -44,6 +44,8 @@ void proto_register_ilp(void);
static dissector_handle_t rrlp_handle;
static dissector_handle_t lpp_handle;
+static dissector_handle_t ilp_handle;
+
/* IANA Registered Ports
* oma-ilp 7276/tcp OMA Internal Location
@@ -115,7 +117,7 @@ void proto_register_ilp(void) {
/* Register protocol */
proto_ilp = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("ilp", dissect_ilp_tcp, proto_ilp);
+ ilp_handle = register_dissector("ilp", dissect_ilp_tcp, proto_ilp);
/* Register fields and subtrees */
proto_register_field_array(proto_ilp, hf, array_length(hf));
@@ -144,11 +146,9 @@ void
proto_reg_handoff_ilp(void)
{
static gboolean initialized = FALSE;
- static dissector_handle_t ilp_handle;
static guint local_ilp_port;
if (!initialized) {
- ilp_handle = find_dissector_add_dependency("ilp", proto_ilp);
dissector_add_string("media_type","application/oma-supl-ilp", ilp_handle);
rrlp_handle = find_dissector_add_dependency("rrlp", proto_ilp);
lpp_handle = find_dissector_add_dependency("lpp", proto_ilp);
diff --git a/epan/dissectors/asn1/inap/packet-inap-template.c b/epan/dissectors/asn1/inap/packet-inap-template.c
index e0c8bf3cf5..626013fae2 100644
--- a/epan/dissectors/asn1/inap/packet-inap-template.c
+++ b/epan/dissectors/asn1/inap/packet-inap-template.c
@@ -177,7 +177,6 @@ void proto_reg_handoff_inap(void) {
if (!inap_prefs_initialized) {
inap_prefs_initialized = TRUE;
- inap_handle = find_dissector("inap");
oid_add_from_string("Core-INAP-CS1-Codes","0.4.0.1.1.0.3.0");
oid_add_from_string("iso(1) identified-organization(3) icd-ecma(12) member-company(2) 1107 oen(3) inap(3) extensions(2)","1.3.12.2.1107.3.3.2");
oid_add_from_string("alcatel(1006)","1.3.12.2.1006.64");
@@ -235,7 +234,7 @@ void proto_register_inap(void) {
/* Register protocol */
proto_inap = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("inap", dissect_inap, proto_inap);
+ inap_handle = register_dissector("inap", dissect_inap, proto_inap);
/* Register fields and subtrees */
proto_register_field_array(proto_inap, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
diff --git a/epan/dissectors/asn1/lcsap/packet-lcsap-template.c b/epan/dissectors/asn1/lcsap/packet-lcsap-template.c
index 5a860e2a5f..fe1635c3f7 100644
--- a/epan/dissectors/asn1/lcsap/packet-lcsap-template.c
+++ b/epan/dissectors/asn1/lcsap/packet-lcsap-template.c
@@ -82,6 +82,8 @@ static guint32 ProtocolExtensionID;
static guint32 PayloadType = -1;
static guint gbl_lcsapSctpPort=SCTP_PORT_LCSAP;
+static dissector_handle_t lcsap_handle;
+
/* Dissector tables */
static dissector_table_t lcsap_ies_dissector_table;
@@ -237,11 +239,9 @@ void
proto_reg_handoff_lcsap(void)
{
static gboolean Initialized=FALSE;
- static dissector_handle_t lcsap_handle;
static guint SctpPort;
if (!Initialized) {
- lcsap_handle = find_dissector("lcsap");
lpp_handle = find_dissector_add_dependency("lpp", proto_lcsap);
lppa_handle = find_dissector_add_dependency("lppa", proto_lcsap);
dissector_add_for_decode_as("sctp.port", lcsap_handle); /* for "decode-as" */
@@ -311,7 +311,7 @@ void proto_register_lcsap(void) {
/* Register fields and subtrees */
proto_register_field_array(proto_lcsap, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("lcsap", dissect_lcsap, proto_lcsap);
+ lcsap_handle = register_dissector("lcsap", dissect_lcsap, proto_lcsap);
/* Register dissector tables */
lcsap_ies_dissector_table = register_dissector_table("lcsap.ies", "LCS-AP-PROTOCOL-IES", proto_lcsap, FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
diff --git a/epan/dissectors/asn1/ldap/packet-ldap-template.c b/epan/dissectors/asn1/ldap/packet-ldap-template.c
index 5d797d9e68..ead97811bc 100644
--- a/epan/dissectors/asn1/ldap/packet-ldap-template.c
+++ b/epan/dissectors/asn1/ldap/packet-ldap-template.c
@@ -2222,7 +2222,7 @@ void proto_register_ldap(void) {
expert_ldap = expert_register_protocol(proto_ldap);
expert_register_field_array(expert_ldap, ei, array_length(ei));
- register_dissector("ldap", dissect_ldap_tcp, proto_ldap);
+ ldap_handle = register_dissector("ldap", dissect_ldap_tcp, proto_ldap);
ldap_module = prefs_register_protocol(proto_ldap, prefs_register_ldap);
prefs_register_bool_preference(ldap_module, "desegment_ldap_messages",
@@ -2280,7 +2280,6 @@ void
proto_reg_handoff_ldap(void)
{
dissector_handle_t cldap_handle;
- ldap_handle = find_dissector("ldap");
dissector_add_uint("tcp.port", TCP_PORT_GLOBALCAT_LDAP, ldap_handle);
diff --git a/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c b/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
index 984226a60a..3fc69bfc74 100644
--- a/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
+++ b/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
@@ -78,6 +78,7 @@ static int hf_mpeg_video_picture = -1;
static int hf_mpeg_video_quantization_matrix = -1;
static int hf_mpeg_video_data = -1;
+static dissector_handle_t mpeg_handle;
enum { PES_PREFIX = 1 };
enum {
@@ -654,7 +655,7 @@ proto_register_mpeg_pes(void)
proto_mpeg = proto_register_protocol(
"Moving Picture Experts Group", "MPEG", "mpeg");
- register_dissector("mpeg", dissect_mpeg, proto_mpeg);
+ mpeg_handle = register_dissector("mpeg", dissect_mpeg, proto_mpeg);
heur_subdissector_list = register_heur_dissector_list("mpeg", proto_mpeg);
proto_mpeg_pes = proto_register_protocol(
@@ -667,8 +668,6 @@ proto_register_mpeg_pes(void)
void
proto_reg_handoff_mpeg_pes(void)
{
- dissector_handle_t mpeg_handle = find_dissector("mpeg");
-
dissector_add_uint("wtap_encap", WTAP_ENCAP_MPEG, mpeg_handle);
heur_dissector_add("mpeg", dissect_mpeg_pes, "MPEG PES", "mpeg_pes", proto_mpeg_pes, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/asn1/nbap/packet-nbap-template.c b/epan/dissectors/asn1/nbap/packet-nbap-template.c
index 0e977447e5..41ade24a36 100644
--- a/epan/dissectors/asn1/nbap/packet-nbap-template.c
+++ b/epan/dissectors/asn1/nbap/packet-nbap-template.c
@@ -95,6 +95,8 @@ static expert_field ei_nbap_hsdsch_entity_not_specified = EI_INIT;
extern int proto_fp;
+static dissector_handle_t nbap_handle;
+
/*
* Structure to build information needed to dissect the FP flow beeing set up.
*/
@@ -527,7 +529,7 @@ void proto_register_nbap(void)
expert_register_field_array(expert_nbap, ei, array_length(ei));
/* Register dissector */
- register_dissector("nbap", dissect_nbap, proto_nbap);
+ nbap_handle = register_dissector("nbap", dissect_nbap, proto_nbap);
nbap_module = prefs_register_protocol(proto_nbap, NULL);
@@ -554,9 +556,6 @@ void proto_register_nbap(void)
void
proto_reg_handoff_nbap(void)
{
- dissector_handle_t nbap_handle;
-
- nbap_handle = find_dissector("nbap");
fp_handle = find_dissector("fp");
dissector_add_uint("sctp.ppi", NBAP_PAYLOAD_PROTOCOL_ID, nbap_handle);
#ifdef EXTRA_PPI
diff --git a/epan/dissectors/asn1/p1/packet-p1-template.c b/epan/dissectors/asn1/p1/packet-p1-template.c
index 6c807d0ea0..f53b0d6024 100644
--- a/epan/dissectors/asn1/p1/packet-p1-template.c
+++ b/epan/dissectors/asn1/p1/packet-p1-template.c
@@ -84,6 +84,8 @@ static dissector_table_t p1_extension_dissector_table;
static dissector_table_t p1_extension_attribute_dissector_table;
static dissector_table_t p1_tokendata_dissector_table;
+static dissector_handle_t p1_handle;
+
#include "packet-p1-table.c" /* operation and error codes */
#define P1_ADDRESS_CTX "p1-address-ctx"
@@ -363,7 +365,7 @@ void proto_register_p1(void) {
/* Register protocol */
proto_p1 = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("p1", dissect_p1, proto_p1);
+ p1_handle = register_dissector("p1", dissect_p1, proto_p1);
proto_p3 = proto_register_protocol("X.411 Message Access Service", "P3", "p3");
@@ -393,8 +395,6 @@ void proto_register_p1(void) {
/*--- proto_reg_handoff_p1 --- */
void proto_reg_handoff_p1(void) {
- dissector_handle_t p1_handle;
-
#include "packet-p1-dis-tab.c"
/* APPLICATION CONTEXT */
@@ -402,8 +402,6 @@ void proto_reg_handoff_p1(void) {
oid_add_from_string("id-ac-mts-transfer","2.6.0.1.6");
/* ABSTRACT SYNTAXES */
-
- p1_handle = find_dissector("p1");
register_rtse_oid_dissector_handle("2.6.0.2.12", p1_handle, 0, "id-as-mta-rtse", TRUE);
register_rtse_oid_dissector_handle("2.6.0.2.7", p1_handle, 0, "id-as-mtse", FALSE);
diff --git a/epan/dissectors/asn1/pcap/packet-pcap-template.c b/epan/dissectors/asn1/pcap/packet-pcap-template.c
index 68cb625e78..68b7792402 100644
--- a/epan/dissectors/asn1/pcap/packet-pcap-template.c
+++ b/epan/dissectors/asn1/pcap/packet-pcap-template.c
@@ -149,7 +149,6 @@ proto_reg_handoff_pcap(void)
static range_t *ssn_range;
if (! prefs_initialized) {
- pcap_handle = find_dissector("pcap");
sccp_ssn_table = find_dissector_table("sccp.ssn");
prefs_initialized = TRUE;
#include "packet-pcap-dis-tab.c"
@@ -188,7 +187,7 @@ void proto_register_pcap(void) {
pcap_module = prefs_register_protocol(proto_pcap, proto_reg_handoff_pcap);
/* Register dissector */
- register_dissector("pcap", dissect_pcap, proto_pcap);
+ pcap_handle = register_dissector("pcap", dissect_pcap, proto_pcap);
/* Register dissector tables */
pcap_ies_dissector_table = register_dissector_table("pcap.ies", "PCAP-PROTOCOL-IES", proto_pcap, FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
diff --git a/epan/dissectors/asn1/ranap/packet-ranap-template.c b/epan/dissectors/asn1/ranap/packet-ranap-template.c
index 2b7cab3a82..cbdfb3fcb9 100644
--- a/epan/dissectors/asn1/ranap/packet-ranap-template.c
+++ b/epan/dissectors/asn1/ranap/packet-ranap-template.c
@@ -87,6 +87,9 @@ static guint32 ProcedureCode;
static guint32 ProtocolIE_ID;
static guint32 ProtocolExtensionID;
static gboolean glbl_dissect_container = FALSE;
+
+static dissector_handle_t ranap_handle;
+
/* Some IE:s identities uses the same value for different IE:s
* depending on PDU type:
* InitiatingMessage
@@ -343,7 +346,7 @@ void proto_register_ranap(void) {
proto_register_subtree_array(ett, array_length(ett));
/* Register dissector */
- register_dissector("ranap", dissect_ranap, proto_ranap);
+ ranap_handle = register_dissector("ranap", dissect_ranap, proto_ranap);
/* Register dissector tables */
ranap_ies_dissector_table = register_dissector_table("ranap.ies", "RANAP-PROTOCOL-IES", proto_ranap, FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
@@ -373,11 +376,9 @@ void
proto_reg_handoff_ranap(void)
{
static gboolean initialized = FALSE;
- static dissector_handle_t ranap_handle;
static gint local_ranap_sccp_ssn;
if (!initialized) {
- ranap_handle = find_dissector("ranap");
rrc_s_to_trnc_handle = find_dissector_add_dependency("rrc.s_to_trnc_cont", proto_ranap);
rrc_t_to_srnc_handle = find_dissector_add_dependency("rrc.t_to_srnc_cont", proto_ranap);
rrc_ho_to_utran_cmd = find_dissector("rrc.irat.ho_to_utran_cmd");
diff --git a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
index 23418703f7..be451530a5 100644
--- a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
+++ b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
@@ -77,6 +77,8 @@ static dissector_table_t rnsap_proc_imsg_dissector_table;
static dissector_table_t rnsap_proc_sout_dissector_table;
static dissector_table_t rnsap_proc_uout_dissector_table;
+static dissector_handle_t rnsap_handle;
+
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_PrivateIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
@@ -158,7 +160,7 @@ void proto_register_rnsap(void) {
proto_register_subtree_array(ett, array_length(ett));
/* Register dissector */
- register_dissector("rnsap", dissect_rnsap, proto_rnsap);
+ rnsap_handle = register_dissector("rnsap", dissect_rnsap, proto_rnsap);
/* Register dissector tables */
rnsap_ies_dissector_table = register_dissector_table("rnsap.ies", "RNSAP-PROTOCOL-IES", proto_rnsap, FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
@@ -174,9 +176,6 @@ void proto_register_rnsap(void) {
void
proto_reg_handoff_rnsap(void)
{
- dissector_handle_t rnsap_handle;
-
- rnsap_handle = find_dissector("rnsap");
rrc_dl_dcch_handle = find_dissector_add_dependency("rrc.dl.dcch", proto_rnsap);
dissector_add_uint("sccp.ssn", SCCP_SSN_RNSAP, rnsap_handle);
diff --git a/epan/dissectors/asn1/ros/packet-ros-template.c b/epan/dissectors/asn1/ros/packet-ros-template.c
index 8fc97cada7..3051a0f7c5 100644
--- a/epan/dissectors/asn1/ros/packet-ros-template.c
+++ b/epan/dissectors/asn1/ros/packet-ros-template.c
@@ -506,7 +506,7 @@ void proto_register_ros(void) {
/* Register protocol */
proto_ros = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("ros", dissect_ros, proto_ros);
+ ros_handle = register_dissector("ros", dissect_ros, proto_ros);
/* Register fields and subtrees */
proto_register_field_array(proto_ros, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -517,8 +517,6 @@ void proto_register_ros(void) {
oid_table=g_hash_table_new(g_str_hash, g_str_equal);
protocol_table=g_hash_table_new(g_str_hash, g_str_equal);
- ros_handle = find_dissector("ros");
-
register_cleanup_routine(ros_cleanup);
}
diff --git a/epan/dissectors/asn1/rua/packet-rua-template.c b/epan/dissectors/asn1/rua/packet-rua-template.c
index afe94baded..a5a6c16f1b 100644
--- a/epan/dissectors/asn1/rua/packet-rua-template.c
+++ b/epan/dissectors/asn1/rua/packet-rua-template.c
@@ -72,6 +72,8 @@ static dissector_table_t rua_proc_imsg_dissector_table;
static dissector_table_t rua_proc_sout_dissector_table;
static dissector_table_t rua_proc_uout_dissector_table;
+static dissector_handle_t rua_handle;
+
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
@@ -148,7 +150,7 @@ module_t *rua_module;
proto_register_subtree_array(ett, array_length(ett));
/* Register dissector */
- register_dissector("rua", dissect_rua, proto_rua);
+ rua_handle = register_dissector("rua", dissect_rua, proto_rua);
/* Register dissector tables */
rua_ies_dissector_table = register_dissector_table("rua.ies", "RUA-PROTOCOL-IES", proto_rua, FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
@@ -168,11 +170,9 @@ void
proto_reg_handoff_rua(void)
{
static gboolean initialized = FALSE;
- static dissector_handle_t rua_handle;
static guint sctp_port;
if (!initialized) {
- rua_handle = find_dissector("rua");
ranap_handle = find_dissector_add_dependency("ranap", proto_rua);
dissector_add_uint("sctp.ppi", RUA_PAYLOAD_PROTOCOL_ID, rua_handle);
initialized = TRUE;
diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
index b2cc5ad191..edcdf8fea7 100644
--- a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
+++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
@@ -103,6 +103,8 @@ static gboolean g_s1ap_dissect_container = TRUE;
static const char *obj_id = NULL;
static dissector_handle_t gcsna_handle = NULL;
+static dissector_handle_t s1ap_handle;
+
/* Dissector tables */
static dissector_table_t s1ap_ies_dissector_table;
@@ -207,10 +209,8 @@ void
proto_reg_handoff_s1ap(void)
{
static gboolean Initialized=FALSE;
- static dissector_handle_t s1ap_handle;
static guint SctpPort;
- s1ap_handle = find_dissector("s1ap");
gcsna_handle = find_dissector_add_dependency("gcsna", proto_s1ap);
if (!Initialized) {
@@ -274,7 +274,7 @@ void proto_register_s1ap(void) {
proto_register_subtree_array(ett, array_length(ett));
/* Register dissector */
- register_dissector("s1ap", dissect_s1ap, proto_s1ap);
+ s1ap_handle = register_dissector("s1ap", dissect_s1ap, proto_s1ap);
/* Register dissector tables */
s1ap_ies_dissector_table = register_dissector_table("s1ap.ies", "S1AP-PROTOCOL-IES", proto_s1ap, FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
diff --git a/epan/dissectors/asn1/sabp/packet-sabp-template.c b/epan/dissectors/asn1/sabp/packet-sabp-template.c
index 8092845ca5..1c0e759cd8 100644
--- a/epan/dissectors/asn1/sabp/packet-sabp-template.c
+++ b/epan/dissectors/asn1/sabp/packet-sabp-template.c
@@ -83,6 +83,9 @@ static dissector_table_t sabp_proc_imsg_dissector_table;
static dissector_table_t sabp_proc_sout_dissector_table;
static dissector_table_t sabp_proc_uout_dissector_table;
+static dissector_handle_t sabp_handle;
+static dissector_handle_t sabp_tcp_handle;
+
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
@@ -267,8 +270,8 @@ void proto_register_sabp(void) {
proto_register_subtree_array(ett, array_length(ett));
/* Register dissector */
- register_dissector("sabp", dissect_sabp, proto_sabp);
- register_dissector("sabp.tcp", dissect_sabp_tcp, proto_sabp);
+ sabp_handle = register_dissector("sabp", dissect_sabp, proto_sabp);
+ sabp_tcp_handle = register_dissector("sabp.tcp", dissect_sabp_tcp, proto_sabp);
/* Register dissector tables */
sabp_ies_dissector_table = register_dissector_table("sabp.ies", "SABP-PROTOCOL-IES", proto_sabp, FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
@@ -283,11 +286,6 @@ void proto_register_sabp(void) {
void
proto_reg_handoff_sabp(void)
{
- dissector_handle_t sabp_handle;
- dissector_handle_t sabp_tcp_handle;
-
- sabp_handle = find_dissector("sabp");
- sabp_tcp_handle = find_dissector("sabp.tcp");
dissector_add_uint("udp.port", 3452, sabp_handle);
dissector_add_uint("tcp.port", 3452, sabp_tcp_handle);
dissector_add_uint("sctp.ppi", SABP_PAYLOAD_PROTOCOL_ID, sabp_handle);
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.c b/epan/dissectors/asn1/snmp/packet-snmp-template.c
index dcd7c50bf0..27008e9a52 100644
--- a/epan/dissectors/asn1/snmp/packet-snmp-template.c
+++ b/epan/dissectors/asn1/snmp/packet-snmp-template.c
@@ -2524,7 +2524,7 @@ void proto_register_snmp(void) {
/* Register protocol */
proto_snmp = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("snmp", dissect_snmp, proto_snmp);
+ snmp_handle = register_dissector("snmp", dissect_snmp, proto_snmp);
/* Register fields and subtrees */
proto_register_field_array(proto_snmp, hf, array_length(hf));
@@ -2583,8 +2583,6 @@ void proto_register_snmp(void) {
void proto_reg_handoff_snmp(void) {
dissector_handle_t snmp_tcp_handle;
- snmp_handle = find_dissector("snmp");
-
dissector_add_uint("udp.port", UDP_PORT_SNMP, snmp_handle);
dissector_add_uint("udp.port", UDP_PORT_SNMP_TRAP, snmp_handle);
dissector_add_uint("udp.port", UDP_PORT_SNMP_PATROL, snmp_handle);
diff --git a/epan/dissectors/asn1/spnego/packet-spnego-template.c b/epan/dissectors/asn1/spnego/packet-spnego-template.c
index 86bac4880a..f2bc72eda8 100644
--- a/epan/dissectors/asn1/spnego/packet-spnego-template.c
+++ b/epan/dissectors/asn1/spnego/packet-spnego-template.c
@@ -91,6 +91,10 @@ static gint ett_spnego_krb5_cfx_flags = -1;
static expert_field ei_spnego_decrypted_keytype = EI_INIT;
static expert_field ei_spnego_unknown_header = EI_INIT;
+static dissector_handle_t spnego_handle;
+static dissector_handle_t spnego_krb5_handle;
+static dissector_handle_t spnego_krb5_wrap_handle;
+
/*
* Unfortunately, we have to have forward declarations of thess,
* as the code generated by asn2wrs includes a call before the
@@ -1436,14 +1440,14 @@ void proto_register_spnego(void) {
/* Register protocol */
proto_spnego = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("spnego", dissect_spnego, proto_spnego);
+ spnego_handle = register_dissector("spnego", dissect_spnego, proto_spnego);
proto_spnego_krb5 = proto_register_protocol("SPNEGO-KRB5",
"SPNEGO-KRB5",
"spnego-krb5");
- register_dissector("spnego-krb5", dissect_spnego_krb5, proto_spnego_krb5);
- register_dissector("spnego-krb5-wrap", dissect_spnego_krb5_wrap, proto_spnego_krb5);
+ spnego_krb5_handle = register_dissector("spnego-krb5", dissect_spnego_krb5, proto_spnego_krb5);
+ spnego_krb5_wrap_handle = register_dissector("spnego-krb5-wrap", dissect_spnego_krb5_wrap, proto_spnego_krb5);
/* Register fields and subtrees */
proto_register_field_array(proto_spnego, hf, array_length(hf));
@@ -1456,12 +1460,10 @@ void proto_register_spnego(void) {
/*--- proto_reg_handoff_spnego ---------------------------------------*/
void proto_reg_handoff_spnego(void) {
- dissector_handle_t spnego_handle, spnego_wrap_handle;
- dissector_handle_t spnego_krb5_handle, spnego_krb5_wrap_handle;
+ dissector_handle_t spnego_wrap_handle;
/* Register protocol with GSS-API module */
- spnego_handle = find_dissector("spnego");
spnego_wrap_handle = create_dissector_handle(dissect_spnego_wrap, proto_spnego);
gssapi_init_oid("1.3.6.1.5.5.2", proto_spnego, ett_spnego,
spnego_handle, spnego_wrap_handle,
@@ -1476,8 +1478,6 @@ void proto_reg_handoff_spnego(void) {
* See the archive of <ietf-krb-wg@anl.gov> for the thread topic
* SPNEGO implementation issues. 3-Dec-2002.
*/
- spnego_krb5_handle = find_dissector("spnego-krb5");
- spnego_krb5_wrap_handle = find_dissector("spnego-krb5-wrap");
gssapi_init_oid("1.2.840.48018.1.2.2", proto_spnego_krb5, ett_spnego_krb5,
spnego_krb5_handle, spnego_krb5_wrap_handle,
"MS KRB5 - Microsoft Kerberos 5");
diff --git a/epan/dissectors/asn1/sv/packet-sv-template.c b/epan/dissectors/asn1/sv/packet-sv-template.c
index 3690ce20ba..e5a3f3b693 100644
--- a/epan/dissectors/asn1/sv/packet-sv-template.c
+++ b/epan/dissectors/asn1/sv/packet-sv-template.c
@@ -108,6 +108,8 @@ static expert_field ei_sv_zero_pdu = EI_INIT;
static gboolean sv_decode_data_as_phsmeas = FALSE;
+static dissector_handle_t sv_handle;
+
static const value_string sv_q_validity_vals[] = {
{ 0, "good" },
{ 1, "invalid" },
@@ -314,7 +316,7 @@ void proto_register_sv(void) {
/* Register protocol */
proto_sv = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("sv", dissect_sv, proto_sv);
+ sv_handle = register_dissector("sv", dissect_sv, proto_sv);
/* Register fields and subtrees */
proto_register_field_array(proto_sv, hf, array_length(hf));
@@ -332,9 +334,5 @@ void proto_register_sv(void) {
/*--- proto_reg_handoff_sv --- */
void proto_reg_handoff_sv(void) {
-
- dissector_handle_t sv_handle;
- sv_handle = find_dissector("sv");
-
dissector_add_uint("ethertype", ETHERTYPE_IEC61850_SV, sv_handle);
}
diff --git a/epan/dissectors/asn1/ulp/packet-ulp-template.c b/epan/dissectors/asn1/ulp/packet-ulp-template.c
index c12cdd1aab..6a8ab185fc 100644
--- a/epan/dissectors/asn1/ulp/packet-ulp-template.c
+++ b/epan/dissectors/asn1/ulp/packet-ulp-template.c
@@ -78,6 +78,8 @@ static gint ett_ulp_thirdPartyId = -1;
static gint ett_ulp_ganssTimeModels = -1;
#include "packet-ulp-ett.c"
+static dissector_handle_t ulp_tcp_handle;
+
static const value_string ulp_ganss_id_vals[] = {
{ 0, "Galileo"},
{ 1, "SBAS"},
@@ -411,7 +413,7 @@ void proto_register_ulp(void) {
/* Register protocol */
proto_ulp = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("ulp", dissect_ulp_tcp, proto_ulp);
+ ulp_tcp_handle = register_dissector("ulp", dissect_ulp_tcp, proto_ulp);
/* Register fields and subtrees */
proto_register_field_array(proto_ulp, hf, array_length(hf));
@@ -445,11 +447,10 @@ void
proto_reg_handoff_ulp(void)
{
static gboolean initialized = FALSE;
- static dissector_handle_t ulp_tcp_handle, ulp_udp_handle;
+ static dissector_handle_t ulp_udp_handle;
static guint local_ulp_tcp_port, local_ulp_udp_port;
if (!initialized) {
- ulp_tcp_handle = find_dissector("ulp");
dissector_add_string("media_type","application/oma-supl-ulp", ulp_tcp_handle);
dissector_add_string("media_type","application/vnd.omaloc-supl-init", ulp_tcp_handle);
ulp_udp_handle = create_dissector_handle(dissect_ULP_PDU_PDU, proto_ulp);
diff --git a/epan/dissectors/asn1/x2ap/packet-x2ap-template.c b/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
index 7e5e149307..8748863c64 100644
--- a/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
+++ b/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
@@ -84,6 +84,8 @@ static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, pro
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
void proto_reg_handoff_x2ap(void);
+static dissector_handle_t x2ap_handle;
+
#include "packet-x2ap-fn.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -161,7 +163,7 @@ void proto_register_x2ap(void) {
proto_register_subtree_array(ett, array_length(ett));
/* Register dissector */
- register_dissector("x2ap", dissect_x2ap, proto_x2ap);
+ x2ap_handle = register_dissector("x2ap", dissect_x2ap, proto_x2ap);
/* Register dissector tables */
x2ap_ies_dissector_table = register_dissector_table("x2ap.ies", "X2AP-PROTOCOL-IES", proto_x2ap, FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
@@ -186,11 +188,9 @@ void proto_register_x2ap(void) {
void
proto_reg_handoff_x2ap(void)
{
- dissector_handle_t x2ap_handle;
static gboolean Initialized=FALSE;
static guint SctpPort;
- x2ap_handle = find_dissector("x2ap");
if (!Initialized) {
dissector_add_for_decode_as("sctp.port", x2ap_handle);
dissector_add_uint("sctp.ppi", X2AP_PAYLOAD_PROTOCOL_ID, x2ap_handle);