aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorJohn Thacker <johnthacker@gmail.com>2022-08-07 09:28:32 -0400
committerAndersBroman <a.broman58@gmail.com>2022-08-09 06:21:05 +0000
commit203cd2cba90014acf1452f8eaf502d5c5f7fd9a2 (patch)
tree743d421202779f5e79099f7296b91174fdbe53b3 /epan/dissectors
parent862803de5cb903ce8b286bc3ec28ef903dd5b49a (diff)
prefs: More cleanup, auto prefs
Remove callback function from pref registrations for dissectors that don't need a callback. In other dissectors, move registration that only needs to be done once inside the check for initialization, avoiding some console messages when preferences are changed ("Duplicate dissectors (anonymous) and (anonymous) for protocol...") and the like. Add a couple auto preferences for dissectors missed in previous waves. Ping #14319
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/asn1/e2ap/packet-e2ap-template.c37
-rw-r--r--epan/dissectors/asn1/pcap/packet-pcap-template.c28
-rw-r--r--epan/dissectors/asn1/q932/packet-q932-template.c2
-rw-r--r--epan/dissectors/asn1/ranap/packet-ranap-template.c31
-rw-r--r--epan/dissectors/packet-amqp.c4
-rw-r--r--epan/dissectors/packet-ansi_tcap.c2
-rw-r--r--epan/dissectors/packet-cisco-fp-mim.c35
-rw-r--r--epan/dissectors/packet-doip.c2
-rw-r--r--epan/dissectors/packet-dtls.c2
-rw-r--r--epan/dissectors/packet-dvbci.c24
-rw-r--r--epan/dissectors/packet-e2ap.c45
-rw-r--r--epan/dissectors/packet-etag.c4
-rw-r--r--epan/dissectors/packet-fcoib.c2
-rw-r--r--epan/dissectors/packet-gfp.c9
-rw-r--r--epan/dissectors/packet-grpc.c2
-rw-r--r--epan/dissectors/packet-http.c12
-rw-r--r--epan/dissectors/packet-ieee802154.c46
-rw-r--r--epan/dissectors/packet-ieee8021ah.c6
-rw-r--r--epan/dissectors/packet-infiniband_sdp.c2
-rw-r--r--epan/dissectors/packet-jxta.c13
-rw-r--r--epan/dissectors/packet-lorawan.c4
-rw-r--r--epan/dissectors/packet-lwm.c16
-rw-r--r--epan/dissectors/packet-netflow.c6
-rw-r--r--epan/dissectors/packet-nvme-rdma.c1
-rw-r--r--epan/dissectors/packet-opa-mad.c2
-rw-r--r--epan/dissectors/packet-pcap.c42
-rw-r--r--epan/dissectors/packet-q932.c2
-rw-r--r--epan/dissectors/packet-ranap.c39
-rw-r--r--epan/dissectors/packet-s5066dts.c6
-rw-r--r--epan/dissectors/packet-sip.c14
-rw-r--r--epan/dissectors/packet-solaredge.c4
-rw-r--r--epan/dissectors/packet-someip.c22
-rw-r--r--epan/dissectors/packet-sscop.c4
-rw-r--r--epan/dissectors/packet-ssyncp.c11
-rw-r--r--epan/dissectors/packet-tdmoe.c2
-rw-r--r--epan/dissectors/packet-thread.c2
-rw-r--r--epan/dissectors/packet-tibia.c2
-rw-r--r--epan/dissectors/packet-tpkt.c18
-rw-r--r--epan/dissectors/packet-uasip.c7
-rw-r--r--epan/dissectors/packet-woww.c3
40 files changed, 175 insertions, 340 deletions
diff --git a/epan/dissectors/asn1/e2ap/packet-e2ap-template.c b/epan/dissectors/asn1/e2ap/packet-e2ap-template.c
index 9ef8944cfe..5286e76ba3 100644
--- a/epan/dissectors/asn1/e2ap/packet-e2ap-template.c
+++ b/epan/dissectors/asn1/e2ap/packet-e2ap-template.c
@@ -74,9 +74,6 @@ struct e2ap_private_data {
guint32 ran_ue_e2ap_id;
};
-/* Global variables */
-static guint gbl_e2apSctpPort = SCTP_PORT_E2AP;
-
/* Dissector tables */
static dissector_table_t e2ap_ies_dissector_table;
//static dissector_table_t e2ap_ies_p1_dissector_table;
@@ -193,31 +190,16 @@ dissect_e2ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
void
proto_reg_handoff_e2ap(void)
{
- static gboolean Initialized=FALSE;
- static guint SctpPort;
-
- if (!Initialized) {
- dissector_add_for_decode_as("sctp.port", e2ap_handle);
+ dissector_add_uint_with_preference("sctp.port", SCTP_PORT_E2AP, e2ap_handle);
#if 0
- /* TODO: should one or more of these be registered? */
- dissector_add_uint("sctp.ppi", E2_CP_PROTOCOL_ID, e2ap_handle);
- dissector_add_uint("sctp.ppi", E2_UP_PROTOCOL_ID, e2ap_handle);
- dissector_add_uint("sctp.ppi", E2_DU_PROTOCOL_ID, e2ap_handle);
+ /* TODO: should one or more of these be registered? */
+ dissector_add_uint("sctp.ppi", E2_CP_PROTOCOL_ID, e2ap_handle);
+ dissector_add_uint("sctp.ppi", E2_UP_PROTOCOL_ID, e2ap_handle);
+ dissector_add_uint("sctp.ppi", E2_DU_PROTOCOL_ID, e2ap_handle);
#endif
- Initialized=TRUE;
#include "packet-e2ap-dis-tab.c"
- } else {
- if (SctpPort != 0) {
- dissector_delete_uint("sctp.port", SctpPort, e2ap_handle);
- }
- }
-
- SctpPort=gbl_e2apSctpPort;
- if (SctpPort != 0) {
- dissector_add_uint("sctp.port", SctpPort, e2ap_handle);
- }
}
/*--- proto_register_e2ap -------------------------------------------*/
@@ -237,7 +219,7 @@ void proto_register_e2ap(void) {
};
- module_t *e2ap_module;
+ /* module_t *e2ap_module; */
/* Register protocol */
proto_e2ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
@@ -260,13 +242,8 @@ void proto_register_e2ap(void) {
e2ap_n2_ie_type_dissector_table = register_dissector_table("e2ap.n2_ie_type", "E2AP N2 IE Type", proto_e2ap, FT_STRING, FALSE);
/* Register configuration options for ports */
- e2ap_module = prefs_register_protocol(proto_e2ap, proto_reg_handoff_e2ap);
+ /* e2ap_module = prefs_register_protocol(proto_e2ap, NULL); */
- prefs_register_uint_preference(e2ap_module, "sctp.port",
- "e2ap SCTP Port",
- "Set the SCTP port for e2ap messages",
- 10,
- &gbl_e2apSctpPort);
}
/*
diff --git a/epan/dissectors/asn1/pcap/packet-pcap-template.c b/epan/dissectors/asn1/pcap/packet-pcap-template.c
index 0e365859f2..120e63fbf7 100644
--- a/epan/dissectors/asn1/pcap/packet-pcap-template.c
+++ b/epan/dissectors/asn1/pcap/packet-pcap-template.c
@@ -40,10 +40,6 @@
void proto_register_pcap(void);
void proto_reg_handoff_pcap(void);
-static range_t *global_ssn_range;
-
-static dissector_table_t sccp_ssn_table;
-
#include "packet-pcap-val.h"
static dissector_handle_t pcap_handle = NULL;
@@ -133,19 +129,8 @@ dissect_pcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
void
proto_reg_handoff_pcap(void)
{
- static gboolean prefs_initialized = FALSE;
- static range_t *ssn_range;
-
- if (! prefs_initialized) {
- sccp_ssn_table = find_dissector_table("sccp.ssn");
- prefs_initialized = TRUE;
#include "packet-pcap-dis-tab.c"
- } else {
- dissector_delete_uint_range("sccp.ssn", ssn_range, pcap_handle);
- wmem_free(wmem_epan_scope(), ssn_range);
- }
- ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
- dissector_add_uint_range("sccp.ssn", ssn_range, pcap_handle);
+ dissector_add_for_decode_as_with_preference("sccp.ssn", pcap_handle);
}
/*--- proto_register_pcap -------------------------------------------*/
@@ -164,7 +149,7 @@ void proto_register_pcap(void) {
#include "packet-pcap-ettarr.c"
};
- module_t *pcap_module;
+ /* module_t *pcap_module; */
/* Register protocol */
proto_pcap = proto_register_protocol(PNAME, PSNAME, PFNAME);
@@ -172,7 +157,7 @@ void proto_register_pcap(void) {
proto_register_field_array(proto_pcap, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- pcap_module = prefs_register_protocol(proto_pcap, proto_reg_handoff_pcap);
+ /* pcap_module = prefs_register_protocol(proto_pcap, NULL); */
/* Register dissector */
pcap_handle = register_dissector("pcap", dissect_pcap, proto_pcap);
@@ -188,13 +173,6 @@ void proto_register_pcap(void) {
pcap_proc_out_dissector_table = register_dissector_table("pcap.proc.out", "PCAP-ELEMENTARY-PROCEDURE Outcome", proto_pcap, FT_UINT32, BASE_DEC);
- /* Preferences */
- /* Set default SSNs */
- range_convert_str(wmem_epan_scope(), &global_ssn_range, "", MAX_SSN);
-
- prefs_register_range_preference(pcap_module, "ssn", "SCCP SSNs",
- "SCCP (and SUA) SSNs to decode as PCAP",
- &global_ssn_range, MAX_SSN);
}
diff --git a/epan/dissectors/asn1/q932/packet-q932-template.c b/epan/dissectors/asn1/q932/packet-q932-template.c
index 8b258ba626..fda92c1610 100644
--- a/epan/dissectors/asn1/q932/packet-q932-template.c
+++ b/epan/dissectors/asn1/q932/packet-q932-template.c
@@ -369,6 +369,8 @@ void proto_reg_handoff_q932(void) {
/* Notification indicator */
dissector_add_uint("q931.ie", (0x00 << 8) | Q932_IE_NOTIFICATION_INDICATOR, q932_ie_handle);
q932_ros_handle = find_dissector_add_dependency("q932.ros", proto_q932);
+
+ q931_prefs_initialized = TRUE;
}
if(g_facility_encoding == FACILITY_QSIG){
diff --git a/epan/dissectors/asn1/ranap/packet-ranap-template.c b/epan/dissectors/asn1/ranap/packet-ranap-template.c
index 73c73ea299..3b6975b470 100644
--- a/epan/dissectors/asn1/ranap/packet-ranap-template.c
+++ b/epan/dissectors/asn1/ranap/packet-ranap-template.c
@@ -165,9 +165,6 @@ static dissector_handle_t ranap_handle;
int pdu_type = 0; /* 0 means wildcard */
-/* Initialise the Preferences */
-static gint global_ranap_sccp_ssn = SCCP_SSN_RANAP;
-
/* Dissector tables */
static dissector_table_t ranap_ies_dissector_table;
static dissector_table_t ranap_ies_p1_dissector_table;
@@ -440,10 +437,7 @@ void proto_register_ranap(void) {
nas_pdu_dissector_table = register_dissector_table("ranap.nas_pdu", "RANAP NAS PDU", proto_ranap, FT_UINT8, BASE_DEC);
- ranap_module = prefs_register_protocol(proto_ranap, proto_reg_handoff_ranap);
- prefs_register_uint_preference(ranap_module, "sccp_ssn", "SCCP SSN for RANAP",
- "The SCCP SubSystem Number for RANAP (default 142)", 10,
- &global_ranap_sccp_ssn);
+ ranap_module = prefs_register_protocol(proto_ranap, NULL);
prefs_register_bool_preference(ranap_module, "dissect_rrc_container",
"Attempt to dissect RRC-Container",
"Attempt to dissect RRC message embedded in RRC-Container IE",
@@ -455,24 +449,15 @@ void proto_register_ranap(void) {
void
proto_reg_handoff_ranap(void)
{
- static gboolean initialized = FALSE;
- static gint local_ranap_sccp_ssn;
-
- if (!initialized) {
- 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_add_dependency("rrc.irat.ho_to_utran_cmd", proto_ranap);
- bssgp_handle = find_dissector("bssgp");
- heur_dissector_add("sccp", dissect_sccp_ranap_heur, "RANAP over SCCP", "ranap_sccp", proto_ranap, HEURISTIC_ENABLE);
- heur_dissector_add("sua", dissect_sccp_ranap_heur, "RANAP over SUA", "ranap_sua", proto_ranap, HEURISTIC_ENABLE);
- initialized = TRUE;
+ 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_add_dependency("rrc.irat.ho_to_utran_cmd", proto_ranap);
+ bssgp_handle = find_dissector("bssgp");
+ heur_dissector_add("sccp", dissect_sccp_ranap_heur, "RANAP over SCCP", "ranap_sccp", proto_ranap, HEURISTIC_ENABLE);
+ heur_dissector_add("sua", dissect_sccp_ranap_heur, "RANAP over SUA", "ranap_sua", proto_ranap, HEURISTIC_ENABLE);
+ dissector_add_uint_with_preference("sccp.ssn", SCCP_SSN_RANAP, ranap_handle);
#include "packet-ranap-dis-tab.c"
- } else {
- dissector_delete_uint("sccp.ssn", local_ranap_sccp_ssn, ranap_handle);
- }
- dissector_add_uint("sccp.ssn", global_ranap_sccp_ssn, ranap_handle);
- local_ranap_sccp_ssn = global_ranap_sccp_ssn;
}
/*
diff --git a/epan/dissectors/packet-amqp.c b/epan/dissectors/packet-amqp.c
index afcb581539..f31909e0a6 100644
--- a/epan/dissectors/packet-amqp.c
+++ b/epan/dissectors/packet-amqp.c
@@ -13466,6 +13466,8 @@ proto_reg_handoff_amqp(void)
dissector_add_uint("amqp.version", AMQP_V0_10, create_dissector_handle( dissect_amqpv0_10, proto_amqpv0_10 ));
dissector_add_uint("amqp.version", AMQP_V1_0, create_dissector_handle( dissect_amqpv1_0, proto_amqpv1_0 ));
+ media_type_subdissector_table = find_dissector_table ("media_type");
+
initialize = TRUE;
}
@@ -13476,8 +13478,6 @@ proto_reg_handoff_amqp(void)
ssl_dissector_add(amqps_port, amqp_tcp_handle);
old_amqps_port = amqps_port;
}
-
- media_type_subdissector_table = find_dissector_table ("media_type");
}
/*
diff --git a/epan/dissectors/packet-ansi_tcap.c b/epan/dissectors/packet-ansi_tcap.c
index 15191dd0e6..8bf87cfc11 100644
--- a/epan/dissectors/packet-ansi_tcap.c
+++ b/epan/dissectors/packet-ansi_tcap.c
@@ -1773,7 +1773,7 @@ proto_register_ansi_tcap(void)
expert_ansi_tcap = expert_register_protocol(proto_ansi_tcap);
expert_register_field_array(expert_ansi_tcap, ei, array_length(ei));
- ansi_tcap_module = prefs_register_protocol(proto_ansi_tcap, proto_reg_handoff_ansi_tcap);
+ ansi_tcap_module = prefs_register_protocol(proto_ansi_tcap, NULL);
prefs_register_enum_preference(ansi_tcap_module, "transaction.matchtype",
"Type of matching invoke/response",
diff --git a/epan/dissectors/packet-cisco-fp-mim.c b/epan/dissectors/packet-cisco-fp-mim.c
index 8e4328d755..be2bf2821c 100644
--- a/epan/dissectors/packet-cisco-fp-mim.c
+++ b/epan/dissectors/packet-cisco-fp-mim.c
@@ -463,7 +463,7 @@ proto_register_mim(void)
proto_fp = proto_register_protocol("Cisco FabricPath", "CFP", "cfp");
- mim_module = prefs_register_protocol (proto_fp, proto_reg_handoff_fabricpath);
+ mim_module = prefs_register_protocol (proto_fp, NULL);
prefs_register_obsolete_preference (mim_module, "enable");
@@ -482,25 +482,20 @@ proto_register_mim(void)
void
proto_reg_handoff_fabricpath(void)
{
- static gboolean prefs_initialized = FALSE;
-
- if (!prefs_initialized) {
- /*
- * Using Heuristic dissector (As opposed to
- * registering the ethertype) in order to
- * get outer source and destination MAC
- * before the standard ethernet dissector
- */
- heur_dissector_add ("eth", dissect_fp_heur, "Cisco FabricPath over Ethernet", "fp_eth", proto_fp, HEURISTIC_ENABLE);
-
- /*
- * The FCS in FabricPath frames covers the entire FabricPath frame,
- * not the encapsulated Ethernet frame, so we don't want to treat
- * the encapsulated frame as if it had an FCS.
- */
- eth_withoutfcs_dissector = find_dissector_add_dependency( "eth_withoutfcs", proto_fp );
- prefs_initialized = TRUE;
- }
+ /*
+ * Using Heuristic dissector (As opposed to
+ * registering the ethertype) in order to
+ * get outer source and destination MAC
+ * before the standard ethernet dissector
+ */
+ heur_dissector_add ("eth", dissect_fp_heur, "Cisco FabricPath over Ethernet", "fp_eth", proto_fp, HEURISTIC_ENABLE);
+
+ /*
+ * The FCS in FabricPath frames covers the entire FabricPath frame,
+ * not the encapsulated Ethernet frame, so we don't want to treat
+ * the encapsulated frame as if it had an FCS.
+ */
+ eth_withoutfcs_dissector = find_dissector_add_dependency( "eth_withoutfcs", proto_fp );
}
/*
diff --git a/epan/dissectors/packet-doip.c b/epan/dissectors/packet-doip.c
index a52415fb87..c3b75ce61d 100644
--- a/epan/dissectors/packet-doip.c
+++ b/epan/dissectors/packet-doip.c
@@ -1267,7 +1267,7 @@ proto_register_doip(void)
proto_register_subtree_array(ett, array_length(ett));
doip_handle = register_dissector("doip", dissect_doip, proto_doip);
- doip_module = prefs_register_protocol(proto_doip, &proto_reg_handoff_doip);
+ doip_module = prefs_register_protocol(proto_doip, NULL);
/* UATs */
doip_diag_addr_uat = uat_new("Diagnostic Addresses",
diff --git a/epan/dissectors/packet-dtls.c b/epan/dissectors/packet-dtls.c
index 8d0db43592..0aa84b0ba6 100644
--- a/epan/dissectors/packet-dtls.c
+++ b/epan/dissectors/packet-dtls.c
@@ -2303,13 +2303,13 @@ proto_reg_handoff_dtls(void)
dtls_parse_uat();
dtls_parse_old_keys();
#endif
- exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
if (initialized == FALSE) {
heur_dissector_add("udp", dissect_dtls_heur, "DTLS over UDP", "dtls_udp", proto_dtls, HEURISTIC_ENABLE);
heur_dissector_add("stun", dissect_dtls_heur, "DTLS over STUN", "dtls_stun", proto_dtls, HEURISTIC_DISABLE);
heur_dissector_add("classicstun", dissect_dtls_heur, "DTLS over CLASSICSTUN", "dtls_classicstun", proto_dtls, HEURISTIC_DISABLE);
dissector_add_uint("sctp.ppi", DIAMETER_DTLS_PROTOCOL_ID, dtls_handle);
+ exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
}
initialized = TRUE;
diff --git a/epan/dissectors/packet-dvbci.c b/epan/dissectors/packet-dvbci.c
index fbc791fda4..5fa6622c2d 100644
--- a/epan/dissectors/packet-dvbci.c
+++ b/epan/dissectors/packet-dvbci.c
@@ -6430,8 +6430,7 @@ proto_register_dvbci(void)
expert_dvbci = expert_register_protocol(proto_dvbci);
expert_register_field_array(expert_dvbci, ei, array_length(ei));
- dvbci_module = prefs_register_protocol(
- proto_dvbci, proto_reg_handoff_dvbci);
+ dvbci_module = prefs_register_protocol(proto_dvbci, proto_reg_handoff_dvbci);
prefs_register_string_preference(dvbci_module,
"sek", "SAC Encryption Key", "SAC Encryption Key (16 hex bytes)",
&dvbci_sek);
@@ -6472,14 +6471,19 @@ proto_register_dvbci(void)
void
proto_reg_handoff_dvbci(void)
{
- dissector_add_uint("wtap_encap", WTAP_ENCAP_DVBCI, dvbci_handle);
-
- data_handle = find_dissector("data");
- mpeg_pmt_handle = find_dissector_add_dependency("mpeg_pmt", proto_dvbci);
- dvb_nit_handle = find_dissector_add_dependency("dvb_nit", proto_dvbci);
- mime_handle = find_dissector_add_dependency("mime_dlt", proto_dvbci);
- tcp_dissector_table = find_dissector_table("tcp.port");
- udp_dissector_table = find_dissector_table("udp.port");
+ static gboolean initialized = FALSE;
+
+ if (!initialized) {
+ dissector_add_uint("wtap_encap", WTAP_ENCAP_DVBCI, dvbci_handle);
+
+ data_handle = find_dissector("data");
+ mpeg_pmt_handle = find_dissector_add_dependency("mpeg_pmt", proto_dvbci);
+ dvb_nit_handle = find_dissector_add_dependency("dvb_nit", proto_dvbci);
+ mime_handle = find_dissector_add_dependency("mime_dlt", proto_dvbci);
+ tcp_dissector_table = find_dissector_table("tcp.port");
+ udp_dissector_table = find_dissector_table("udp.port");
+ initialized = TRUE;
+ }
g_free(dvbci_sek_bin);
g_free(dvbci_siv_bin);
diff --git a/epan/dissectors/packet-e2ap.c b/epan/dissectors/packet-e2ap.c
index 8a260b7e38..023e5e9aae 100644
--- a/epan/dissectors/packet-e2ap.c
+++ b/epan/dissectors/packet-e2ap.c
@@ -478,9 +478,6 @@ struct e2ap_private_data {
guint32 ran_ue_e2ap_id;
};
-/* Global variables */
-static guint gbl_e2apSctpPort = SCTP_PORT_E2AP;
-
/* Dissector tables */
static dissector_table_t e2ap_ies_dissector_table;
//static dissector_table_t e2ap_ies_p1_dissector_table;
@@ -3772,7 +3769,7 @@ static int dissect_RANcallProcess_ID_string_PDU(tvbuff_t *tvb _U_, packet_info *
/*--- End of included file: packet-e2ap-fn.c ---*/
-#line 121 "./asn1/e2ap/packet-e2ap-template.c"
+#line 118 "./asn1/e2ap/packet-e2ap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -3848,19 +3845,14 @@ dissect_e2ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
void
proto_reg_handoff_e2ap(void)
{
- static gboolean Initialized=FALSE;
- static guint SctpPort;
-
- if (!Initialized) {
- dissector_add_for_decode_as("sctp.port", e2ap_handle);
+ dissector_add_uint_with_preference("sctp.port", SCTP_PORT_E2AP, e2ap_handle);
#if 0
- /* TODO: should one or more of these be registered? */
- dissector_add_uint("sctp.ppi", E2_CP_PROTOCOL_ID, e2ap_handle);
- dissector_add_uint("sctp.ppi", E2_UP_PROTOCOL_ID, e2ap_handle);
- dissector_add_uint("sctp.ppi", E2_DU_PROTOCOL_ID, e2ap_handle);
+ /* TODO: should one or more of these be registered? */
+ dissector_add_uint("sctp.ppi", E2_CP_PROTOCOL_ID, e2ap_handle);
+ dissector_add_uint("sctp.ppi", E2_UP_PROTOCOL_ID, e2ap_handle);
+ dissector_add_uint("sctp.ppi", E2_DU_PROTOCOL_ID, e2ap_handle);
#endif
- Initialized=TRUE;
/*--- Included file: packet-e2ap-dis-tab.c ---*/
#line 1 "./asn1/e2ap/packet-e2ap-dis-tab.c"
@@ -3919,18 +3911,8 @@ proto_reg_handoff_e2ap(void)
/*--- End of included file: packet-e2ap-dis-tab.c ---*/
-#line 210 "./asn1/e2ap/packet-e2ap-template.c"
+#line 202 "./asn1/e2ap/packet-e2ap-template.c"
- } else {
- if (SctpPort != 0) {
- dissector_delete_uint("sctp.port", SctpPort, e2ap_handle);
- }
- }
-
- SctpPort=gbl_e2apSctpPort;
- if (SctpPort != 0) {
- dissector_add_uint("sctp.port", SctpPort, e2ap_handle);
- }
}
/*--- proto_register_e2ap -------------------------------------------*/
@@ -4776,7 +4758,7 @@ void proto_register_e2ap(void) {
NULL, HFILL }},
/*--- End of included file: packet-e2ap-hfarr.c ---*/
-#line 230 "./asn1/e2ap/packet-e2ap-template.c"
+#line 212 "./asn1/e2ap/packet-e2ap-template.c"
};
@@ -4901,11 +4883,11 @@ void proto_register_e2ap(void) {
&ett_e2ap_PerQCIReportListItemFormat,
/*--- End of included file: packet-e2ap-ettarr.c ---*/
-#line 237 "./asn1/e2ap/packet-e2ap-template.c"
+#line 219 "./asn1/e2ap/packet-e2ap-template.c"
};
- module_t *e2ap_module;
+ /* module_t *e2ap_module; */
/* Register protocol */
proto_e2ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
@@ -4928,13 +4910,8 @@ void proto_register_e2ap(void) {
e2ap_n2_ie_type_dissector_table = register_dissector_table("e2ap.n2_ie_type", "E2AP N2 IE Type", proto_e2ap, FT_STRING, FALSE);
/* Register configuration options for ports */
- e2ap_module = prefs_register_protocol(proto_e2ap, proto_reg_handoff_e2ap);
+ /* e2ap_module = prefs_register_protocol(proto_e2ap, NULL); */
- prefs_register_uint_preference(e2ap_module, "sctp.port",
- "e2ap SCTP Port",
- "Set the SCTP port for e2ap messages",
- 10,
- &gbl_e2apSctpPort);
}
/*
diff --git a/epan/dissectors/packet-etag.c b/epan/dissectors/packet-etag.c
index f32195ffab..662a8d7dea 100644
--- a/epan/dissectors/packet-etag.c
+++ b/epan/dissectors/packet-etag.c
@@ -208,8 +208,8 @@ proto_register_etag(void)
proto_register_field_array(proto_etag, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- etag_module = prefs_register_protocol(proto_etag, proto_reg_handoff_etag);
- prefs_register_bool_preference(etag_module, "summary_in_tree",
+ etag_module = prefs_register_protocol(proto_etag, NULL);
+ prefs_register_bool_preference(etag_module, "summary_in_tree",
"Show E-Tag summary in protocol tree",
"Whether the E-Tag summary line should be shown in the protocol tree",
&etag_summary_in_tree);
diff --git a/epan/dissectors/packet-fcoib.c b/epan/dissectors/packet-fcoib.c
index 46195c75e0..ae3770de25 100644
--- a/epan/dissectors/packet-fcoib.c
+++ b/epan/dissectors/packet-fcoib.c
@@ -313,7 +313,7 @@ proto_register_fcoib(void)
expert_fcoib = expert_register_protocol(proto_fcoib);
expert_register_field_array(expert_fcoib, ei, array_length(ei));
- fcoib_module = prefs_register_protocol(proto_fcoib, proto_reg_handoff_fcoib);
+ fcoib_module = prefs_register_protocol(proto_fcoib, NULL);
prefs_register_static_text_preference(fcoib_module, "use_decode_as",
"Heuristic matching preferences removed. Use Infiniband protocol preferences or Decode As.",
diff --git a/epan/dissectors/packet-gfp.c b/epan/dissectors/packet-gfp.c
index 90192b2705..00f7c69cff 100644
--- a/epan/dissectors/packet-gfp.c
+++ b/epan/dissectors/packet-gfp.c
@@ -576,15 +576,6 @@ proto_register_gfp(void)
register_decode_as(&gfp_da);
}
-/* If this function is registered as a prefs callback (see
- * prefs_register_protocol above) this function is also called by Wireshark's
- * preferences manager whenever "Apply" or "OK" are pressed. In that case, it
- * should accommodate being called more than once by use of the static
- * 'initialized' variable included below.
- *
- * This form of the reg_handoff function is used if you perform registration
- * functions which are dependent upon prefs.
- */
void
proto_reg_handoff_gfp(void)
{
diff --git a/epan/dissectors/packet-grpc.c b/epan/dissectors/packet-grpc.c
index 3015b74a32..67dd4da1cf 100644
--- a/epan/dissectors/packet-grpc.c
+++ b/epan/dissectors/packet-grpc.c
@@ -507,7 +507,7 @@ proto_register_grpc(void)
proto_register_field_array(proto_grpc, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- grpc_module = prefs_register_protocol(proto_grpc, proto_reg_handoff_grpc);
+ grpc_module = prefs_register_protocol(proto_grpc, NULL);
prefs_register_bool_preference(grpc_module, "detect_json_automatically",
"Always check whether the message is JSON regardless of content-type.",
diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c
index a9e76adcc0..21452cb8c8 100644
--- a/epan/dissectors/packet-http.c
+++ b/epan/dissectors/packet-http.c
@@ -282,7 +282,6 @@ static gboolean http_decompress_body = TRUE;
#define SCTP_DEFAULT_RANGE "80"
#define TLS_DEFAULT_RANGE "443"
-static range_t *global_http_sctp_range = NULL;
static range_t *global_http_tls_range = NULL;
static range_t *http_tcp_range = NULL;
@@ -3923,10 +3922,7 @@ range_add_http_tls_callback(guint32 port, gpointer ptr _U_) {
static void reinit_http(void) {
http_tcp_range = prefs_get_range_value("http", "tcp.port");
- dissector_delete_uint_range("sctp.port", http_sctp_range, http_sctp_handle);
- wmem_free(wmem_epan_scope(), http_sctp_range);
- http_sctp_range = range_copy(wmem_epan_scope(), global_http_sctp_range);
- dissector_add_uint_range("sctp.port", http_sctp_range, http_sctp_handle);
+ http_sctp_range = prefs_get_range_value("http", "sctp.port");
range_foreach(http_tls_range, range_delete_http_tls_callback, NULL);
wmem_free(wmem_epan_scope(), http_tls_range);
@@ -4315,11 +4311,6 @@ proto_register_http(void)
#endif
prefs_register_obsolete_preference(http_module, "tcp_alternate_port");
- range_convert_str(wmem_epan_scope(), &global_http_sctp_range, SCTP_DEFAULT_RANGE, 65535);
- prefs_register_range_preference(http_module, "sctp.port", "SCTP Ports",
- "SCTP Ports range",
- &global_http_sctp_range, 65535);
-
range_convert_str(wmem_epan_scope(), &global_http_tls_range, TLS_DEFAULT_RANGE, 65535);
prefs_register_range_preference(http_module, "tls.port", "SSL/TLS Ports",
"SSL/TLS Ports range",
@@ -4543,6 +4534,7 @@ proto_reg_handoff_message_http(void)
proto_http2 = proto_get_id_by_filter_name("http2");
dissector_add_uint_range_with_preference("tcp.port", TCP_DEFAULT_RANGE, http_tcp_handle);
+ dissector_add_uint_range_with_preference("sctp.port", SCTP_DEFAULT_RANGE, http_sctp_handle);
reinit_http();
}
diff --git a/epan/dissectors/packet-ieee802154.c b/epan/dissectors/packet-ieee802154.c
index 8536d62bb5..7af53fc04f 100644
--- a/epan/dissectors/packet-ieee802154.c
+++ b/epan/dissectors/packet-ieee802154.c
@@ -7050,6 +7050,29 @@ void proto_reg_handoff_ieee802154(void)
dissector_add_uint("wtap_encap", WTAP_ENCAP_IEEE802_15_4_TAP, ieee802154_tap_handle);
dissector_add_uint("sll.ltype", LINUX_SLL_P_IEEE802154, ieee802154_handle);
+ /* Register internal IE handlers */
+ dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_TIME_CORR, create_dissector_handle(dissect_hie_time_correction, -1));
+ dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_CSL, create_dissector_handle(dissect_hie_csl, -1));
+ dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_RENDEZVOUS, create_dissector_handle(dissect_hie_rendezvous_time, -1));
+ dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_GLOBAL_TIME, create_dissector_handle(dissect_hie_global_time, -1));
+ dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_VENDOR_SPECIFIC, create_dissector_handle(dissect_hie_vendor_specific, -1));
+
+ dissector_add_uint(IEEE802154_PAYLOAD_IE_DTABLE, IEEE802154_PAYLOAD_IE_MLME, create_dissector_handle(dissect_pie_mlme, -1));
+ dissector_add_uint(IEEE802154_PAYLOAD_IE_DTABLE, IEEE802154_PAYLOAD_IE_VENDOR, create_dissector_handle(dissect_pie_vendor, -1));
+ dissector_add_uint(IEEE802154_PAYLOAD_IE_DTABLE, IEEE802154_PAYLOAD_IE_MPX, create_dissector_handle(dissect_mpx_ie, -1));
+ dissector_add_uint(IEEE802154_PAYLOAD_IE_DTABLE, IEEE802154_PAYLOAD_IE_IETF, create_dissector_handle(dissect_ietf_ie, -1));
+
+ dissector_add_uint(IEEE802154_MLME_IE_DTABLE, IEEE802154_MLME_SUBIE_CHANNEL_HOPPING, create_dissector_handle(dissect_802154_channel_hopping, -1));
+ dissector_add_uint(IEEE802154_MLME_IE_DTABLE, IEEE802154_MLME_SUBIE_TSCH_SYNCH, create_dissector_handle(dissect_802154_tsch_time_sync, -1));
+ dissector_add_uint(IEEE802154_MLME_IE_DTABLE, IEEE802154_MLME_SUBIE_TSCH_SLOTFR_LINK, create_dissector_handle(dissect_802154_tsch_slotframe_link, -1));
+ dissector_add_uint(IEEE802154_MLME_IE_DTABLE, IEEE802154_MLME_SUBIE_TSCH_TIMESLOT, create_dissector_handle(dissect_802154_tsch_timeslot, -1));
+ dissector_add_uint(IEEE802154_MLME_IE_DTABLE, IEEE802154_MLME_SUBIE_ENHANCED_BEACON_FILTER, create_dissector_handle(dissect_802154_eb_filter, -1));
+
+ /* For the MPX-IE */
+ ethertype_table = find_dissector_table("ethertype");
+ eapol_handle = find_dissector("eapol");
+ lowpan_handle = find_dissector("6lowpan");
+ wisun_sec_handle = find_dissector("wisun.sec");
prefs_initialized = TRUE;
} else {
dissector_delete_uint("ethertype", old_ieee802154_ethertype, ieee802154_handle);
@@ -7060,29 +7083,6 @@ void proto_reg_handoff_ieee802154(void)
/* Register dissector handles. */
dissector_add_uint("ethertype", ieee802154_ethertype, ieee802154_handle);
- /* Register internal IE handlers */
- dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_TIME_CORR, create_dissector_handle(dissect_hie_time_correction, -1));
- dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_CSL, create_dissector_handle(dissect_hie_csl, -1));
- dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_RENDEZVOUS, create_dissector_handle(dissect_hie_rendezvous_time, -1));
- dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_GLOBAL_TIME, create_dissector_handle(dissect_hie_global_time, -1));
- dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_VENDOR_SPECIFIC, create_dissector_handle(dissect_hie_vendor_specific, -1));
-
- dissector_add_uint(IEEE802154_PAYLOAD_IE_DTABLE, IEEE802154_PAYLOAD_IE_MLME, create_dissector_handle(dissect_pie_mlme, -1));
- dissector_add_uint(IEEE802154_PAYLOAD_IE_DTABLE, IEEE802154_PAYLOAD_IE_VENDOR, create_dissector_handle(dissect_pie_vendor, -1));
- dissector_add_uint(IEEE802154_PAYLOAD_IE_DTABLE, IEEE802154_PAYLOAD_IE_MPX, create_dissector_handle(dissect_mpx_ie, -1));
- dissector_add_uint(IEEE802154_PAYLOAD_IE_DTABLE, IEEE802154_PAYLOAD_IE_IETF, create_dissector_handle(dissect_ietf_ie, -1));
-
- dissector_add_uint(IEEE802154_MLME_IE_DTABLE, IEEE802154_MLME_SUBIE_CHANNEL_HOPPING, create_dissector_handle(dissect_802154_channel_hopping, -1));
- dissector_add_uint(IEEE802154_MLME_IE_DTABLE, IEEE802154_MLME_SUBIE_TSCH_SYNCH, create_dissector_handle(dissect_802154_tsch_time_sync, -1));
- dissector_add_uint(IEEE802154_MLME_IE_DTABLE, IEEE802154_MLME_SUBIE_TSCH_SLOTFR_LINK, create_dissector_handle(dissect_802154_tsch_slotframe_link, -1));
- dissector_add_uint(IEEE802154_MLME_IE_DTABLE, IEEE802154_MLME_SUBIE_TSCH_TIMESLOT, create_dissector_handle(dissect_802154_tsch_timeslot, -1));
- dissector_add_uint(IEEE802154_MLME_IE_DTABLE, IEEE802154_MLME_SUBIE_ENHANCED_BEACON_FILTER, create_dissector_handle(dissect_802154_eb_filter, -1));
-
- /* For the MPX-IE */
- ethertype_table = find_dissector_table("ethertype");
- eapol_handle = find_dissector("eapol");
- lowpan_handle = find_dissector("6lowpan");
- wisun_sec_handle = find_dissector("wisun.sec");
} /* proto_reg_handoff_ieee802154 */
/*
diff --git a/epan/dissectors/packet-ieee8021ah.c b/epan/dissectors/packet-ieee8021ah.c
index da60007e76..251089d381 100644
--- a/epan/dissectors/packet-ieee8021ah.c
+++ b/epan/dissectors/packet-ieee8021ah.c
@@ -435,6 +435,9 @@ proto_reg_handoff_ieee8021ah(void)
capture_dissector_add_uint("ethertype", ETHERTYPE_IEEE_802_1AD, ieee8021ah_cap_handle);
capture_dissector_add_uint("ethertype", ETHERTYPE_IEEE_802_1AH, ieee8021ah_cap_handle);
+ ipx_cap_handle = find_capture_dissector("ipx");
+ llc_cap_handle = find_capture_dissector("llc");
+
prefs_initialized = TRUE;
}
else {
@@ -443,9 +446,6 @@ proto_reg_handoff_ieee8021ah(void)
old_ieee8021ah_ethertype = ieee8021ah_ethertype;
dissector_add_uint("ethertype", ieee8021ah_ethertype, ieee8021ah_handle);
-
- ipx_cap_handle = find_capture_dissector("ipx");
- llc_cap_handle = find_capture_dissector("llc");
}
/*
diff --git a/epan/dissectors/packet-infiniband_sdp.c b/epan/dissectors/packet-infiniband_sdp.c
index 283d16e1c0..025d8b6c27 100644
--- a/epan/dissectors/packet-infiniband_sdp.c
+++ b/epan/dissectors/packet-infiniband_sdp.c
@@ -436,7 +436,7 @@ proto_register_ib_sdp(void)
proto_register_subtree_array(ett, array_length(ett));
/* Register preferences */
- ib_sdp_module = prefs_register_protocol(proto_ib_sdp, proto_reg_handoff_ib_sdp);
+ ib_sdp_module = prefs_register_protocol(proto_ib_sdp, NULL);
prefs_register_static_text_preference(ib_sdp_module, "use_decode_as",
"Heuristic matching preferences removed. Use Infiniband protocol preferences or Decode As.",
diff --git a/epan/dissectors/packet-jxta.c b/epan/dissectors/packet-jxta.c
index 975fc1c84d..56af6ebc85 100644
--- a/epan/dissectors/packet-jxta.c
+++ b/epan/dissectors/packet-jxta.c
@@ -2391,6 +2391,10 @@ void proto_reg_handoff_jxta(void)
media_handle = find_dissector_add_dependency("media", proto_jxta);
+ heur_dissector_add("udp", dissect_jxta_UDP_heur, "JXTA over UDP", "jxta_udp", proto_jxta, HEURISTIC_ENABLE);
+ heur_dissector_add("tcp", dissect_jxta_TCP_heur, "JXTA over TCP", "jxta_tcp", proto_jxta, HEURISTIC_ENABLE);
+ heur_dissector_add("sctp", dissect_jxta_SCTP_heur, "JXTA over SCTP", "jxta_sctp", proto_jxta, HEURISTIC_ENABLE);
+
init_done = TRUE;
}
@@ -2407,15 +2411,6 @@ void proto_reg_handoff_jxta(void)
msg_media_register_done = FALSE;
}
}
-
- /* ws_message( "Registering UDP Heuristic dissector" ); */
- heur_dissector_add("udp", dissect_jxta_UDP_heur, "JXTA over UDP", "jxta_udp", proto_jxta, HEURISTIC_ENABLE);
-
- /* ws_message( "Registering TCP Heuristic dissector" ); */
- heur_dissector_add("tcp", dissect_jxta_TCP_heur, "JXTA over TCP", "jxta_tcp", proto_jxta, HEURISTIC_ENABLE);
-
- /* ws_message( "Registering SCTP Heuristic dissector" ); */
- heur_dissector_add("sctp", dissect_jxta_SCTP_heur, "JXTA over SCTP", "jxta_sctp", proto_jxta, HEURISTIC_ENABLE);
}
/*
diff --git a/epan/dissectors/packet-lorawan.c b/epan/dissectors/packet-lorawan.c
index 8891798270..043b318e95 100644
--- a/epan/dissectors/packet-lorawan.c
+++ b/epan/dissectors/packet-lorawan.c
@@ -1365,7 +1365,7 @@ proto_register_lorawan(void)
);
module_t *lorawan_module;
- lorawan_module = prefs_register_protocol(proto_lorawan, proto_reg_handoff_lorawan);
+ lorawan_module = prefs_register_protocol(proto_lorawan, NULL);
prefs_register_uat_preference(lorawan_module, "encryption_keys_lorawan", "LoRaWAN Encryption Keys",
"A table to define encryption keys for LoRaWAN devices",
device_encryption_keys_uat);
@@ -1374,7 +1374,7 @@ proto_register_lorawan(void)
void
proto_reg_handoff_lorawan(void)
{
- static dissector_handle_t lorawan_handle;
+ dissector_handle_t lorawan_handle;
lorawan_handle = create_dissector_handle(dissect_lorawan, proto_lorawan);
dissector_add_uint("loratap.syncword", 0x34, lorawan_handle);
dissector_add_for_decode_as("udp.port", lorawan_handle);
diff --git a/epan/dissectors/packet-lwm.c b/epan/dissectors/packet-lwm.c
index 0630c90d29..d7892342f5 100644
--- a/epan/dissectors/packet-lwm.c
+++ b/epan/dissectors/packet-lwm.c
@@ -905,7 +905,8 @@ void proto_register_lwm(void)
* proto_reg_handoff_lwm
* DESCRIPTION
* Registers the lwm dissector with Wireshark.
- * Will be called during Wireshark startup.
+ * Will be called during Wireshark startup, and whenever
+ * preferences are changed.
* PARAMETERS
* none
* RETURNS
@@ -914,9 +915,17 @@ void proto_register_lwm(void)
*/
void proto_reg_handoff_lwm(void)
{
+ static gboolean initialized = FALSE;
GByteArray *bytes;
gboolean res;
+ if (!initialized) {
+ /* Register our dissector with IEEE 802.15.4 */
+ dissector_add_for_decode_as(IEEE802154_PROTOABBREV_WPAN_PANID, lwm_handle);
+ heur_dissector_add(IEEE802154_PROTOABBREV_WPAN, dissect_lwm_heur, "Lightweight Mesh over IEEE 802.15.4", "lwm_wlan", proto_lwm, HEURISTIC_ENABLE);
+
+ initialized = TRUE;
+ }
/* Convert key to raw bytes */
bytes = g_byte_array_new();
res = hex_str_to_bytes(lwmes_key_str, bytes, FALSE);
@@ -926,11 +935,6 @@ void proto_reg_handoff_lwm(void)
}
g_byte_array_free(bytes, TRUE);
-
- /* Register our dissector with IEEE 802.15.4 */
- dissector_add_for_decode_as(IEEE802154_PROTOABBREV_WPAN_PANID, lwm_handle);
- heur_dissector_add(IEEE802154_PROTOABBREV_WPAN, dissect_lwm_heur, "Lightweight Mesh over IEEE 802.15.4", "lwm_wlan", proto_lwm, HEURISTIC_ENABLE);
-
} /* proto_reg_handoff_lwm */
/*
diff --git a/epan/dissectors/packet-netflow.c b/epan/dissectors/packet-netflow.c
index c18d1343fe..02aa5970eb 100644
--- a/epan/dissectors/packet-netflow.c
+++ b/epan/dissectors/packet-netflow.c
@@ -21021,10 +21021,10 @@ proto_reg_handoff_netflow(void)
static range_t *netflow_ports;
static range_t *ipfix_ports;
- /* Find eth_handle used for IE315*/
- eth_handle = find_dissector ("eth_withoutfcs");
-
if (!netflow_prefs_initialized) {
+ /* Find eth_handle used for IE315*/
+ eth_handle = find_dissector ("eth_withoutfcs");
+
netflow_handle = create_dissector_handle(dissect_netflow, proto_netflow);
netflow_tcp_handle = create_dissector_handle(dissect_tcp_netflow, proto_netflow);
netflow_prefs_initialized = TRUE;
diff --git a/epan/dissectors/packet-nvme-rdma.c b/epan/dissectors/packet-nvme-rdma.c
index 427e25c0c2..13940ece7e 100644
--- a/epan/dissectors/packet-nvme-rdma.c
+++ b/epan/dissectors/packet-nvme-rdma.c
@@ -808,7 +808,6 @@ proto_register_nvme_rdma(void)
proto_register_subtree_array(ett, array_length(ett));
/* Register preferences */
- //nvme_rdma_module = prefs_register_protocol(proto_nvme_rdma, proto_reg_handoff_nvme_rdma);
nvme_rdma_module = prefs_register_protocol(proto_nvme_rdma, NULL);
range_convert_str(wmem_epan_scope(), &gPORT_RANGE, NVME_RDMA_TCP_PORT_RANGE, MAX_TCP_PORT);
diff --git a/epan/dissectors/packet-opa-mad.c b/epan/dissectors/packet-opa-mad.c
index eef6daa114..c902104050 100644
--- a/epan/dissectors/packet-opa-mad.c
+++ b/epan/dissectors/packet-opa-mad.c
@@ -13663,7 +13663,7 @@ void proto_register_opa_mad(void)
range_convert_str(wmem_epan_scope(), &global_mad_reserved_class, OPA_RESERVED_RANGE_STR, 0xFF);
range_convert_str(wmem_epan_scope(), &global_mad_opa_class, OPA_MGMTCLASS_RANGE_STR, 0xFF);
- opa_mad_module = prefs_register_protocol(proto_opa_mad, proto_reg_handoff_opa_mad);
+ opa_mad_module = prefs_register_protocol(proto_opa_mad, NULL);
prefs_register_bool_preference(opa_mad_module, "parse_mad_error",
"Enable Parsing of Mad Payload on Mad Status Error",
"Attempt to parse mad payload even when MAD.Status is non-zero",
diff --git a/epan/dissectors/packet-pcap.c b/epan/dissectors/packet-pcap.c
index 470638e9f7..1fa92c6c64 100644
--- a/epan/dissectors/packet-pcap.c
+++ b/epan/dissectors/packet-pcap.c
@@ -48,10 +48,6 @@
void proto_register_pcap(void);
void proto_reg_handoff_pcap(void);
-static range_t *global_ssn_range;
-
-static dissector_table_t sccp_ssn_table;
-
/*--- Included file: packet-pcap-val.h ---*/
#line 1 "./asn1/pcap/packet-pcap-val.h"
@@ -240,7 +236,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-pcap-val.h ---*/
-#line 48 "./asn1/pcap/packet-pcap-template.c"
+#line 44 "./asn1/pcap/packet-pcap-template.c"
static dissector_handle_t pcap_handle = NULL;
@@ -1393,7 +1389,7 @@ static int hf_pcap_AvailableSubChannelNumbers_subCh1 = -1;
static int hf_pcap_AvailableSubChannelNumbers_subCh0 = -1;
/*--- End of included file: packet-pcap-hf.c ---*/
-#line 55 "./asn1/pcap/packet-pcap-template.c"
+#line 51 "./asn1/pcap/packet-pcap-template.c"
/* Initialize the subtree pointers */
static int ett_pcap = -1;
@@ -1796,7 +1792,7 @@ static gint ett_pcap_UnsuccessfulOutcome = -1;
static gint ett_pcap_Outcome = -1;
/*--- End of included file: packet-pcap-ett.c ---*/
-#line 60 "./asn1/pcap/packet-pcap-template.c"
+#line 56 "./asn1/pcap/packet-pcap-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -13540,7 +13536,7 @@ static int dissect_PCAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
/*--- End of included file: packet-pcap-fn.c ---*/
-#line 84 "./asn1/pcap/packet-pcap-template.c"
+#line 80 "./asn1/pcap/packet-pcap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -13593,12 +13589,6 @@ dissect_pcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
void
proto_reg_handoff_pcap(void)
{
- static gboolean prefs_initialized = FALSE;
- static range_t *ssn_range;
-
- if (! prefs_initialized) {
- sccp_ssn_table = find_dissector_table("sccp.ssn");
- prefs_initialized = TRUE;
/*--- Included file: packet-pcap-dis-tab.c ---*/
#line 1 "./asn1/pcap/packet-pcap-dis-tab.c"
@@ -13740,13 +13730,8 @@ proto_reg_handoff_pcap(void)
/*--- End of included file: packet-pcap-dis-tab.c ---*/
-#line 143 "./asn1/pcap/packet-pcap-template.c"
- } else {
- dissector_delete_uint_range("sccp.ssn", ssn_range, pcap_handle);
- wmem_free(wmem_epan_scope(), ssn_range);
- }
- ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
- dissector_add_uint_range("sccp.ssn", ssn_range, pcap_handle);
+#line 133 "./asn1/pcap/packet-pcap-template.c"
+ dissector_add_for_decode_as_with_preference("sccp.ssn", pcap_handle);
}
/*--- proto_register_pcap -------------------------------------------*/
@@ -18321,7 +18306,7 @@ void proto_register_pcap(void) {
NULL, HFILL }},
/*--- End of included file: packet-pcap-hfarr.c ---*/
-#line 159 "./asn1/pcap/packet-pcap-template.c"
+#line 144 "./asn1/pcap/packet-pcap-template.c"
};
/* List of subtrees */
@@ -18725,10 +18710,10 @@ void proto_register_pcap(void) {
&ett_pcap_Outcome,
/*--- End of included file: packet-pcap-ettarr.c ---*/
-#line 165 "./asn1/pcap/packet-pcap-template.c"
+#line 150 "./asn1/pcap/packet-pcap-template.c"
};
- module_t *pcap_module;
+ /* module_t *pcap_module; */
/* Register protocol */
proto_pcap = proto_register_protocol(PNAME, PSNAME, PFNAME);
@@ -18736,7 +18721,7 @@ void proto_register_pcap(void) {
proto_register_field_array(proto_pcap, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- pcap_module = prefs_register_protocol(proto_pcap, proto_reg_handoff_pcap);
+ /* pcap_module = prefs_register_protocol(proto_pcap, NULL); */
/* Register dissector */
pcap_handle = register_dissector("pcap", dissect_pcap, proto_pcap);
@@ -18752,13 +18737,6 @@ void proto_register_pcap(void) {
pcap_proc_out_dissector_table = register_dissector_table("pcap.proc.out", "PCAP-ELEMENTARY-PROCEDURE Outcome", proto_pcap, FT_UINT32, BASE_DEC);
- /* Preferences */
- /* Set default SSNs */
- range_convert_str(wmem_epan_scope(), &global_ssn_range, "", MAX_SSN);
-
- prefs_register_range_preference(pcap_module, "ssn", "SCCP SSNs",
- "SCCP (and SUA) SSNs to decode as PCAP",
- &global_ssn_range, MAX_SSN);
}
diff --git a/epan/dissectors/packet-q932.c b/epan/dissectors/packet-q932.c
index 8c88f54997..8e5f458113 100644
--- a/epan/dissectors/packet-q932.c
+++ b/epan/dissectors/packet-q932.c
@@ -1117,6 +1117,8 @@ void proto_reg_handoff_q932(void) {
/* Notification indicator */
dissector_add_uint("q931.ie", (0x00 << 8) | Q932_IE_NOTIFICATION_INDICATOR, q932_ie_handle);
q932_ros_handle = find_dissector_add_dependency("q932.ros", proto_q932);
+
+ q931_prefs_initialized = TRUE;
}
if(g_facility_encoding == FACILITY_QSIG){
diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c
index aaff6e8705..21952ffbb2 100644
--- a/epan/dissectors/packet-ranap.c
+++ b/epan/dissectors/packet-ranap.c
@@ -1717,9 +1717,6 @@ static dissector_handle_t ranap_handle;
int pdu_type = 0; /* 0 means wildcard */
-/* Initialise the Preferences */
-static gint global_ranap_sccp_ssn = SCCP_SSN_RANAP;
-
/* Dissector tables */
static dissector_table_t ranap_ies_dissector_table;
static dissector_table_t ranap_ies_p1_dissector_table;
@@ -15056,7 +15053,7 @@ static int dissect_RANAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
/*--- End of included file: packet-ranap-fn.c ---*/
-#line 196 "./asn1/ranap/packet-ranap-template.c"
+#line 193 "./asn1/ranap/packet-ranap-template.c"
static int
dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -18440,7 +18437,7 @@ void proto_register_ranap(void) {
NULL, HFILL }},
/*--- End of included file: packet-ranap-hfarr.c ---*/
-#line 411 "./asn1/ranap/packet-ranap-template.c"
+#line 408 "./asn1/ranap/packet-ranap-template.c"
};
/* List of subtrees */
@@ -18804,7 +18801,7 @@ void proto_register_ranap(void) {
&ett_ranap_Outcome,
/*--- End of included file: packet-ranap-ettarr.c ---*/
-#line 419 "./asn1/ranap/packet-ranap-template.c"
+#line 416 "./asn1/ranap/packet-ranap-template.c"
};
@@ -18829,10 +18826,7 @@ void proto_register_ranap(void) {
nas_pdu_dissector_table = register_dissector_table("ranap.nas_pdu", "RANAP NAS PDU", proto_ranap, FT_UINT8, BASE_DEC);
- ranap_module = prefs_register_protocol(proto_ranap, proto_reg_handoff_ranap);
- prefs_register_uint_preference(ranap_module, "sccp_ssn", "SCCP SSN for RANAP",
- "The SCCP SubSystem Number for RANAP (default 142)", 10,
- &global_ranap_sccp_ssn);
+ ranap_module = prefs_register_protocol(proto_ranap, NULL);
prefs_register_bool_preference(ranap_module, "dissect_rrc_container",
"Attempt to dissect RRC-Container",
"Attempt to dissect RRC message embedded in RRC-Container IE",
@@ -18844,17 +18838,13 @@ void proto_register_ranap(void) {
void
proto_reg_handoff_ranap(void)
{
- static gboolean initialized = FALSE;
- static gint local_ranap_sccp_ssn;
-
- if (!initialized) {
- 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_add_dependency("rrc.irat.ho_to_utran_cmd", proto_ranap);
- bssgp_handle = find_dissector("bssgp");
- heur_dissector_add("sccp", dissect_sccp_ranap_heur, "RANAP over SCCP", "ranap_sccp", proto_ranap, HEURISTIC_ENABLE);
- heur_dissector_add("sua", dissect_sccp_ranap_heur, "RANAP over SUA", "ranap_sua", proto_ranap, HEURISTIC_ENABLE);
- initialized = TRUE;
+ 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_add_dependency("rrc.irat.ho_to_utran_cmd", proto_ranap);
+ bssgp_handle = find_dissector("bssgp");
+ heur_dissector_add("sccp", dissect_sccp_ranap_heur, "RANAP over SCCP", "ranap_sccp", proto_ranap, HEURISTIC_ENABLE);
+ heur_dissector_add("sua", dissect_sccp_ranap_heur, "RANAP over SUA", "ranap_sua", proto_ranap, HEURISTIC_ENABLE);
+ dissector_add_uint_with_preference("sccp.ssn", SCCP_SSN_RANAP, ranap_handle);
/*--- Included file: packet-ranap-dis-tab.c ---*/
#line 1 "./asn1/ranap/packet-ranap-dis-tab.c"
@@ -19233,13 +19223,8 @@ proto_reg_handoff_ranap(void)
/*--- End of included file: packet-ranap-dis-tab.c ---*/
-#line 470 "./asn1/ranap/packet-ranap-template.c"
- } else {
- dissector_delete_uint("sccp.ssn", local_ranap_sccp_ssn, ranap_handle);
- }
+#line 460 "./asn1/ranap/packet-ranap-template.c"
- dissector_add_uint("sccp.ssn", global_ranap_sccp_ssn, ranap_handle);
- local_ranap_sccp_ssn = global_ranap_sccp_ssn;
}
/*
diff --git a/epan/dissectors/packet-s5066dts.c b/epan/dissectors/packet-s5066dts.c
index a2f8037ba8..81c3170f3c 100644
--- a/epan/dissectors/packet-s5066dts.c
+++ b/epan/dissectors/packet-s5066dts.c
@@ -70,7 +70,7 @@ static expert_field ei_s5066dts_eow_hftrp_invalid = EI_INIT;
/* TCP port that will be listened by the application that peer
* dts layers will be connected through
*/
-static guint config_s5066dts_port = 0;
+static range_t *config_s5066dts_ports = NULL;
static gint hf_s5066dts_sync_word = -1;
static gint hf_s5066dts_dpdu_type = -1;
@@ -927,7 +927,7 @@ static int dissect_s5066dts_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
}
/* Drop packets with port matches other than the destination port. */
- if ( pinfo->destport != config_s5066dts_port) {
+ if (!value_is_in_range(config_s5066dts_ports, pinfo->destport)) {
/* Configured to dissect TCP destination port matches only, dropping.. */
return 0;
}
@@ -942,7 +942,7 @@ static void
apply_s5066dts_prefs(void)
{
/* STANAG 5066 uses the port preference for some heuristics */
- config_s5066dts_port = prefs_get_uint_value("s5066dts", "tcp.port");;
+ config_s5066dts_ports = prefs_get_range_value("s5066dts", "tcp.port");;
}
void proto_register_s5066dts (void)
diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c
index bf1cda8e0f..baa5df63c2 100644
--- a/epan/dissectors/packet-sip.c
+++ b/epan/dissectors/packet-sip.c
@@ -7785,6 +7785,14 @@ proto_reg_handoff_sip(void)
heur_dissector_add("tcp", dissect_sip_tcp_heur, "SIP over TCP", "sip_tcp", proto_sip, HEURISTIC_ENABLE);
heur_dissector_add("sctp", dissect_sip_heur, "SIP over SCTP", "sip_sctp", proto_sip, HEURISTIC_ENABLE);
heur_dissector_add("stun", dissect_sip_heur, "SIP over TURN", "sip_stun", proto_sip, HEURISTIC_ENABLE);
+
+ dissector_add_uint("acdr.tls_application_port", 5061, sip_handle);
+ dissector_add_uint("acdr.tls_application", TLS_APP_SIP, sip_handle);
+ dissector_add_string("protobuf_field", "adc.sip.ResponsePDU.body", sip_handle);
+ dissector_add_string("protobuf_field", "adc.sip.RequestPDU.body", sip_handle);
+
+ exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
+
sip_prefs_initialized = TRUE;
} else {
ssl_dissector_delete(saved_sip_tls_port, sip_tcp_handle);
@@ -7793,12 +7801,6 @@ proto_reg_handoff_sip(void)
ssl_dissector_add(sip_tls_port, sip_tcp_handle);
saved_sip_tls_port = sip_tls_port;
- dissector_add_uint("acdr.tls_application_port", 5061, sip_handle);
- dissector_add_uint("acdr.tls_application", TLS_APP_SIP, sip_handle);
- dissector_add_string("protobuf_field", "adc.sip.ResponsePDU.body", sip_handle);
- dissector_add_string("protobuf_field", "adc.sip.RequestPDU.body", sip_handle);
-
- exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
}
/*
diff --git a/epan/dissectors/packet-solaredge.c b/epan/dissectors/packet-solaredge.c
index 852677dc38..e1ada67140 100644
--- a/epan/dissectors/packet-solaredge.c
+++ b/epan/dissectors/packet-solaredge.c
@@ -1358,7 +1358,7 @@ dissect_solaredge(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree _U_, void
void
proto_reg_handoff_solaredge(void)
{
- static dissector_handle_t solaredge_handle;
+ dissector_handle_t solaredge_handle;
solaredge_handle = create_dissector_handle(dissect_solaredge, proto_solaredge);
dissector_add_for_decode_as("tcp.port", solaredge_handle);
}
@@ -1660,7 +1660,7 @@ proto_register_solaredge(void)
"solaredge"
);
- module_t * module_solaredge = prefs_register_protocol(proto_solaredge, proto_reg_handoff_solaredge);
+ module_t * module_solaredge = prefs_register_protocol(proto_solaredge, NULL);
prefs_register_bool_preference(module_solaredge, "unknown", "Show unknown fields", "Show unidentified fields (\"padding\") in packet dissections", &global_show_unknown_fields);
prefs_register_string_preference(module_solaredge, "system_encryption_key", "System encryption key", "Inverter system encryption key", &global_system_encryption_key);
diff --git a/epan/dissectors/packet-someip.c b/epan/dissectors/packet-someip.c
index 2e131e86f9..aa8e7fc20c 100644
--- a/epan/dissectors/packet-someip.c
+++ b/epan/dissectors/packet-someip.c
@@ -234,9 +234,6 @@ static const fragment_items someip_tp_frag_items = {
static reassembly_table someip_tp_reassembly_table;
-static range_t *someip_ports_udp = NULL;
-static range_t *someip_ports_tcp = NULL;
-
static gboolean someip_tp_reassemble = TRUE;
static gboolean someip_deserializer_activated = TRUE;
static gboolean someip_deserializer_wtlv_default = FALSE;
@@ -4074,16 +4071,6 @@ proto_register_someip(void) {
/* Register preferences */
someip_module = prefs_register_protocol(proto_someip, &proto_reg_handoff_someip);
- range_convert_str(wmem_epan_scope(), &someip_ports_udp, "", 65535);
- prefs_register_range_preference(someip_module, "ports.udp", "UDP Ports",
- "SOME/IP Port Ranges UDP.",
- &someip_ports_udp, 65535);
-
- range_convert_str(wmem_epan_scope(), &someip_ports_tcp, "", 65535);
- prefs_register_range_preference(someip_module, "ports.tcp", "TCP Ports",
- "SOME/IP Port Ranges TCP.",
- &someip_ports_tcp, 65535);
-
/* UATs */
someip_service_uat = uat_new("SOME/IP Services",
sizeof(generic_one_id_string_t), /* record size */
@@ -4396,16 +4383,13 @@ proto_reg_handoff_someip(void) {
stats_tree_register("someip_messages", "someip_messages", "SOME/IP Messages", 0, someip_messages_stats_tree_packet, someip_messages_stats_tree_init, NULL);
+ dissector_add_uint_range_with_preference("udp.port", "", someip_handle_udp);
+ dissector_add_uint_range_with_preference("tcp.port", "", someip_handle_tcp);
+
initialized = TRUE;
} else {
- /* delete all my ports even the dynamically registered ones */
- dissector_delete_all("udp.port", someip_handle_udp);
- dissector_delete_all("tcp.port", someip_handle_tcp);
-
clean_all_hashtables_with_empty_uat();
}
- dissector_add_uint_range("udp.port", someip_ports_udp, someip_handle_udp);
- dissector_add_uint_range("tcp.port", someip_ports_tcp, someip_handle_tcp);
update_dynamic_hf_entries_someip_parameter_list();
update_dynamic_hf_entries_someip_parameter_arrays();
diff --git a/epan/dissectors/packet-sscop.c b/epan/dissectors/packet-sscop.c
index 6401bf170a..61d461a053 100644
--- a/epan/dissectors/packet-sscop.c
+++ b/epan/dissectors/packet-sscop.c
@@ -375,11 +375,11 @@ proto_reg_handoff_sscop(void)
if (!prefs_initialized) {
initialize_handles_once();
dissector_add_uint_range_with_preference("udp.port", "", sscop_handle);
+ dissector_add_uint("atm.aal5.type", TRAF_SSCOP, sscop_handle);
+
prefs_initialized = TRUE;
}
- dissector_add_uint("atm.aal5.type", TRAF_SSCOP, sscop_handle);
-
switch(sscop_payload_dissector) {
case DATA_DISSECTOR: default_handle = data_handle; break;
case Q2931_DISSECTOR: default_handle = q2931_handle; break;
diff --git a/epan/dissectors/packet-ssyncp.c b/epan/dissectors/packet-ssyncp.c
index dbd0100520..310193a961 100644
--- a/epan/dissectors/packet-ssyncp.c
+++ b/epan/dissectors/packet-ssyncp.c
@@ -426,12 +426,13 @@ proto_reg_handoff_ssyncp(void)
if (!initialized) {
ssyncp_handle = create_dissector_handle(dissect_ssyncp, proto_ssyncp);
dissector_add_uint("udp.port", SSYNCP_UDP_PORT, ssyncp_handle);
- initialized = TRUE;
- }
- dissector_protobuf = find_dissector("protobuf");
- if (dissector_protobuf == NULL) {
- report_failure("unable to find protobuf dissector");
+ dissector_protobuf = find_dissector("protobuf");
+ if (dissector_protobuf == NULL) {
+ report_failure("unable to find protobuf dissector");
+ }
+
+ initialized = TRUE;
}
have_ssyncp_key = FALSE;
diff --git a/epan/dissectors/packet-tdmoe.c b/epan/dissectors/packet-tdmoe.c
index b6baa6eb13..82b99886fe 100644
--- a/epan/dissectors/packet-tdmoe.c
+++ b/epan/dissectors/packet-tdmoe.c
@@ -151,7 +151,7 @@ proto_register_tdmoe(void)
proto_tdmoe = proto_register_protocol("Digium TDMoE Protocol", "TDMoE", "tdmoe");
proto_register_field_array(proto_tdmoe, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- tdmoe_module = prefs_register_protocol(proto_tdmoe, proto_reg_handoff_tdmoe);
+ tdmoe_module = prefs_register_protocol(proto_tdmoe, NULL);
prefs_register_uint_preference(tdmoe_module, "d_channel",
"TDMoE D-Channel",
"The TDMoE channel that contains the D-Channel.",
diff --git a/epan/dissectors/packet-thread.c b/epan/dissectors/packet-thread.c
index 491230faab..808ab838ac 100644
--- a/epan/dissectors/packet-thread.c
+++ b/epan/dissectors/packet-thread.c
@@ -3365,7 +3365,7 @@ proto_register_thread(void)
proto_thread = proto_register_protocol("Thread", "Thread", "thread");
- thread_module = prefs_register_protocol(proto_thread, proto_reg_handoff_thread);
+ thread_module = prefs_register_protocol(proto_thread, NULL);
prefs_register_obsolete_preference(thread_module, "thr_coap_decode");
prefs_register_string_preference(thread_module, "thr_seq_ctr",
"Thread sequence counter",
diff --git a/epan/dissectors/packet-tibia.c b/epan/dissectors/packet-tibia.c
index e44813740a..f021ffc7d2 100644
--- a/epan/dissectors/packet-tibia.c
+++ b/epan/dissectors/packet-tibia.c
@@ -2607,7 +2607,7 @@ proto_register_tibia(void)
expert_module_t *expert_tibia = expert_register_protocol(proto_tibia);
expert_register_field_array (expert_tibia, ei, array_length (ei));
- module_t *tibia_module = prefs_register_protocol(proto_tibia, proto_reg_handoff_tibia);
+ module_t *tibia_module = prefs_register_protocol(proto_tibia, NULL);
prefs_register_bool_preference(tibia_module, "try_otserv_key", "Try OTServ's RSA key",
"Try the default RSA key in use by nearly all Open Tibia servers", &try_otserv_key);
diff --git a/epan/dissectors/packet-tpkt.c b/epan/dissectors/packet-tpkt.c
index 8dc0cb09a1..41635cb5ac 100644
--- a/epan/dissectors/packet-tpkt.c
+++ b/epan/dissectors/packet-tpkt.c
@@ -55,7 +55,6 @@ static dissector_handle_t osi_tp_handle;
static dissector_handle_t tpkt_handle;
#define DEFAULT_TPKT_PORT_RANGE "102"
-static range_t *tpkt_tcp_port_range;
/*
* Check whether this could be a TPKT-encapsulated PDU.
@@ -675,20 +674,13 @@ proto_register_tpkt(void)
proto_register_subtree_array(ett, array_length(ett));
tpkt_handle = register_dissector("tpkt", dissect_tpkt, proto_tpkt);
- tpkt_module = prefs_register_protocol(proto_tpkt, proto_reg_handoff_tpkt);
+ tpkt_module = prefs_register_protocol(proto_tpkt, NULL);
prefs_register_bool_preference(tpkt_module, "desegment",
"Reassemble TPKT messages spanning multiple TCP segments",
"Whether the TPKT dissector should reassemble messages spanning multiple TCP segments. "
"To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
&tpkt_desegment);
- range_convert_str(wmem_epan_scope(), &tpkt_tcp_port_range, DEFAULT_TPKT_PORT_RANGE, MAX_TCP_PORT);
-
- prefs_register_range_preference(tpkt_module, "tcp.ports", "TPKT TCP ports",
- "TCP ports to be decoded as TPKT (default: "
- DEFAULT_TPKT_PORT_RANGE ")",
- &tpkt_tcp_port_range, MAX_TCP_PORT);
-
/* heuristic dissectors for premable CredSSP before RDP and Fast-Path RDP packets */
tpkt_heur_subdissector_list = register_heur_dissector_list("tpkt", proto_tpkt);
@@ -698,17 +690,9 @@ proto_register_tpkt(void)
void
proto_reg_handoff_tpkt(void)
{
- static range_t *port_range = NULL;
-
osi_tp_handle = find_dissector("ositp");
dissector_add_uint_range_with_preference("tcp.port", TCP_PORT_TPKT_RANGE, tpkt_handle);
- dissector_delete_uint_range("tcp.port", port_range, tpkt_handle);
- wmem_free(wmem_epan_scope(), port_range);
-
- port_range = range_copy(wmem_epan_scope(), tpkt_tcp_port_range);
- dissector_add_uint_range("tcp.port", port_range, tpkt_handle);
-
/* ssl_dissector_add registers TLS as the dissector for TCP for the
* given port. We can't use it, since on port 3389 TPKT (for RDP) can be
* over TLS or directly over TCP, depending on the RDP security settings.
diff --git a/epan/dissectors/packet-uasip.c b/epan/dissectors/packet-uasip.c
index d8f21ae886..611c953ae0 100644
--- a/epan/dissectors/packet-uasip.c
+++ b/epan/dissectors/packet-uasip.c
@@ -536,15 +536,16 @@ void proto_reg_handoff_uasip(void)
{
ua_sys_to_term_handle = find_dissector_add_dependency("ua_sys_to_term", proto_uasip);
ua_term_to_sys_handle = find_dissector_add_dependency("ua_term_to_sys", proto_uasip);
+
+ /* Enable decoding "Internet media type" as UASIP */
+ dissector_add_for_decode_as("media_type", uasip_handle);
+
prefs_initialized = TRUE;
}
use_proxy_ipaddr = FALSE;
memset(proxy_ipaddr, 0, sizeof(proxy_ipaddr));
- /* Enable decoding "Internet media type" as UASIP */
- dissector_add_for_decode_as("media_type", uasip_handle);
-
if (strcmp(pref_proxy_ipaddr_s, "") != 0) {
if (str_to_ip(pref_proxy_ipaddr_s, proxy_ipaddr)) {
use_proxy_ipaddr = TRUE;
diff --git a/epan/dissectors/packet-woww.c b/epan/dissectors/packet-woww.c
index 786ab0b2d4..55e6e5bbf4 100644
--- a/epan/dissectors/packet-woww.c
+++ b/epan/dissectors/packet-woww.c
@@ -5265,8 +5265,7 @@ proto_register_woww(void)
proto_register_field_array(proto_woww, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- prefs_register_protocol(proto_woww,
- NULL);
+ prefs_register_protocol(proto_woww, NULL);
}