diff options
author | Michael Mann <mmann78@netscape.net> | 2016-06-30 20:41:45 -0400 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2016-07-01 14:26:20 +0000 |
commit | a062c802364fd83d43f934560149f2ddd1fee6a3 (patch) | |
tree | e5c9240b24a5b86c12b4a9481a2bd93e18b828f5 /epan/dissectors/asn1 | |
parent | d4add25cb77773d9564dfc8f340ab5ce491a7d20 (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')
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); |