aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2016-11-17 21:45:28 -0500
committerMichael Mann <mmann78@netscape.net>2016-11-22 16:47:47 +0000
commitfb9a356e46c5adbc74e9d117463c0fb2b4778afe (patch)
tree810603de442ebb9454352263247654e30120db36 /epan
parentba67963fd4ef287124cd9bf8f35a22d8a5663a11 (diff)
Add prefs_get_uint_value and prefs_get_range_value
This allows dissectors to not need to know about the internal preference structure. Change-Id: I1ae67248cd0b0132aefc225ea0a9befaf9afdde2 Reviewed-on: https://code.wireshark.org/review/18864 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-beep.c4
-rw-r--r--epan/dissectors/packet-capwap.c4
-rw-r--r--epan/dissectors/packet-gopher.c5
-rw-r--r--epan/dissectors/packet-hdfs.c4
-rw-r--r--epan/dissectors/packet-http.c5
-rw-r--r--epan/dissectors/packet-iec104.c4
-rw-r--r--epan/dissectors/packet-kafka.c6
-rw-r--r--epan/dissectors/packet-mbtcp.c15
-rw-r--r--epan/dissectors/packet-openflow.c4
-rw-r--r--epan/dissectors/packet-quake2.c4
-rw-r--r--epan/dissectors/packet-quakeworld.c4
-rw-r--r--epan/dissectors/packet-rsync.c4
-rw-r--r--epan/dissectors/packet-s5066dts.c4
-rw-r--r--epan/dissectors/packet-tds.c6
-rw-r--r--epan/dissectors/packet-tftp.c8
-rw-r--r--epan/dissectors/packet-uaudp.c6
-rw-r--r--epan/dissectors/packet-vnc.c6
-rw-r--r--epan/prefs.c16
-rw-r--r--epan/prefs.h11
19 files changed, 55 insertions, 65 deletions
diff --git a/epan/dissectors/packet-beep.c b/epan/dissectors/packet-beep.c
index 11a2daa53a..51cff81c1f 100644
--- a/epan/dissectors/packet-beep.c
+++ b/epan/dissectors/packet-beep.c
@@ -32,7 +32,6 @@
#include <stdlib.h>
#include <epan/packet.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/conversation.h>
#include <epan/expert.h>
#include <epan/proto_data.h>
@@ -894,8 +893,7 @@ static void
apply_beep_prefs(void)
{
/* Beep uses the port preference to determine client/server */
- pref_t *beep_port = prefs_find_preference(prefs_find_module("beep"), "tcp.port");
- global_beep_tcp_port = *beep_port->varp.uint;
+ global_beep_tcp_port = prefs_get_uint_value("beep", "tcp.port");
}
/* Register all the bits needed with the filtering engine */
diff --git a/epan/dissectors/packet-capwap.c b/epan/dissectors/packet-capwap.c
index c2e3cadedc..48fdf5ab62 100644
--- a/epan/dissectors/packet-capwap.c
+++ b/epan/dissectors/packet-capwap.c
@@ -25,7 +25,6 @@
#include <epan/packet.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/reassemble.h>
#include <epan/expert.h>
@@ -3398,8 +3397,7 @@ dissect_capwap_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
static void
apply_capwap_prefs(void)
{
- pref_t *control_port = prefs_find_preference(prefs_find_module("capwap.data"), "udp.port");
- global_capwap_data_udp_port = *control_port->varp.uint;
+ global_capwap_data_udp_port = prefs_get_uint_value("capwap.data", "udp.port");
}
void
diff --git a/epan/dissectors/packet-gopher.c b/epan/dissectors/packet-gopher.c
index 73df6703f0..79003540f1 100644
--- a/epan/dissectors/packet-gopher.c
+++ b/epan/dissectors/packet-gopher.c
@@ -32,7 +32,6 @@
#include <epan/packet.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
void proto_register_gopher(void);
void proto_reg_handoff_gopher(void);
@@ -203,9 +202,9 @@ dissect_gopher(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
/* Preference callbacks */
static void
gopher_prefs_apply(void) {
- pref_t *gopher_ports = prefs_find_preference(prefs_find_module("gopher"), "tcp.port");
- gopher_tcp_range = range_copy(*gopher_ports->varp.range);
+ g_free(gopher_tcp_range);
+ gopher_tcp_range = prefs_get_range_value("gopher", "tcp.port");
}
/* Register the protocol with Wireshark */
diff --git a/epan/dissectors/packet-hdfs.c b/epan/dissectors/packet-hdfs.c
index e8fb0e06d2..9b5ee6d667 100644
--- a/epan/dissectors/packet-hdfs.c
+++ b/epan/dissectors/packet-hdfs.c
@@ -29,7 +29,6 @@
#include <epan/packet.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include "packet-tcp.h"
void proto_register_hdfs(void);
@@ -688,8 +687,7 @@ static void
apply_hdfs_prefs(void)
{
/* HDFS uses the port preference to determine request/response */
- pref_t *hdfs_port = prefs_find_preference(prefs_find_module("hdfs"), "tcp.port");
- tcp_port = *hdfs_port->varp.uint;
+ tcp_port = prefs_get_uint_value("hdfs", "tcp.port");;
}
/* registers the protcol with the given names */
diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c
index 2387565ad0..839f562908 100644
--- a/epan/dissectors/packet-http.c
+++ b/epan/dissectors/packet-http.c
@@ -34,7 +34,6 @@
#include <epan/packet.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/expert.h>
#include <epan/follow.h>
#include <epan/addr_resolv.h>
@@ -3267,8 +3266,8 @@ range_add_http_ssl_callback(guint32 port) {
}
static void reinit_http(void) {
- pref_t *http_tcp_ports = prefs_find_preference(prefs_find_module("http"), "tcp.port");
- http_tcp_range = range_copy(*http_tcp_ports->varp.range);
+ g_free(http_tcp_range);
+ http_tcp_range = prefs_get_range_value("http", "tcp.port");
dissector_delete_uint_range("sctp.port", http_sctp_range, http_sctp_handle);
g_free(http_sctp_range);
diff --git a/epan/dissectors/packet-iec104.c b/epan/dissectors/packet-iec104.c
index 47a6164d63..2a5b6871c5 100644
--- a/epan/dissectors/packet-iec104.c
+++ b/epan/dissectors/packet-iec104.c
@@ -34,7 +34,6 @@
#include <epan/packet.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/expert.h>
#include "packet-tcp.h"
@@ -1494,8 +1493,7 @@ static void
apply_iec104_prefs(void)
{
/* IEC104 uses the port preference to determine direction */
- pref_t *iec104_port_pref = prefs_find_preference(prefs_find_module("104apci"), "tcp.port");
- iec104_port = *iec104_port_pref->varp.uint;
+ iec104_port = prefs_get_uint_value("104apci", "tcp.port");
}
/* The protocol has two subprotocols: Register APCI */
diff --git a/epan/dissectors/packet-kafka.c b/epan/dissectors/packet-kafka.c
index e4abd3f6ca..589ba1477b 100644
--- a/epan/dissectors/packet-kafka.c
+++ b/epan/dissectors/packet-kafka.c
@@ -29,7 +29,6 @@
#include <epan/packet.h>
#include <epan/expert.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/proto_data.h>
#ifdef HAVE_SNAPPY
#include <snappy-c.h>
@@ -1474,9 +1473,8 @@ dissect_kafka_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
static void
apply_kafka_prefs(void) {
- pref_t *kafka_ports = prefs_find_preference(prefs_find_module("kafka"), "tcp.port");
-
- current_kafka_tcp_range = range_copy(*kafka_ports->varp.range);
+ g_free(current_kafka_tcp_range);
+ current_kafka_tcp_range = prefs_get_range_value("kafka", "tcp.port");
}
void
diff --git a/epan/dissectors/packet-mbtcp.c b/epan/dissectors/packet-mbtcp.c
index bd1acec65d..178ae4f418 100644
--- a/epan/dissectors/packet-mbtcp.c
+++ b/epan/dissectors/packet-mbtcp.c
@@ -67,7 +67,6 @@
#include "packet-tcp.h"
#include "packet-mbtcp.h"
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/expert.h>
#include <epan/crc16-tvb.h> /* For CRC verification */
#include <epan/proto_data.h>
@@ -1586,22 +1585,16 @@ static void
apply_mbtcp_prefs(void)
{
/* Modbus/RTU uses the port preference to determine request/response */
- pref_t *tcp_port = prefs_find_preference(prefs_find_module("mbtcp"), "tcp.port");
- pref_t *udp_port = prefs_find_preference(prefs_find_module("mbudp"), "udp.port");
-
- global_mbus_tcp_port = *tcp_port->varp.uint;
- global_mbus_udp_port = *udp_port->varp.uint;
+ global_mbus_tcp_port = prefs_get_uint_value("mbtcp", "tcp.port");
+ global_mbus_udp_port = prefs_get_uint_value("mbudp", "udp.port");
}
static void
apply_mbrtu_prefs(void)
{
/* Modbus/RTU uses the port preference to determine request/response */
- pref_t *rtu_tcp_port = prefs_find_preference(prefs_find_module("mbrtu"), "tcp.port");
- pref_t *rtu_udp_port = prefs_find_preference(prefs_find_module("mbrtu"), "udp.port");
-
- global_mbus_tcp_rtu_port = *rtu_tcp_port->varp.uint;
- global_mbus_udp_rtu_port = *rtu_udp_port->varp.uint;
+ global_mbus_tcp_rtu_port = prefs_get_uint_value("mbrtu", "tcp.port");
+ global_mbus_udp_rtu_port = prefs_get_uint_value("mbrtu", "udp.port");
}
/* Register the protocol with Wireshark */
diff --git a/epan/dissectors/packet-openflow.c b/epan/dissectors/packet-openflow.c
index 27410ebda4..9c5b78ccf5 100644
--- a/epan/dissectors/packet-openflow.c
+++ b/epan/dissectors/packet-openflow.c
@@ -29,7 +29,6 @@
#include <epan/packet.h>
#include <epan/expert.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include "packet-tcp.h"
@@ -139,8 +138,7 @@ static void
apply_openflow_prefs(void)
{
/* Openflow uses the port preference for heuristics */
- pref_t *openflow_port = prefs_find_preference(prefs_find_module("openflow"), "tcp.port");
- g_openflow_port = *openflow_port->varp.uint;
+ g_openflow_port = prefs_get_uint_value("openflow", "tcp.port");
}
/*
diff --git a/epan/dissectors/packet-quake2.c b/epan/dissectors/packet-quake2.c
index 030c61a8b9..4d9c214898 100644
--- a/epan/dissectors/packet-quake2.c
+++ b/epan/dissectors/packet-quake2.c
@@ -32,7 +32,6 @@
#include <epan/packet.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
void proto_register_quake2(void);
void proto_reg_handoff_quake2(void);
@@ -687,8 +686,7 @@ static void
apply_quake2_prefs(void)
{
/* Port preference used to determine client/server */
- pref_t *quake2_port = prefs_find_preference(prefs_find_module("quake2"), "udp.port");
- gbl_quake2ServerPort = *quake2_port->varp.uint;
+ gbl_quake2ServerPort = prefs_get_uint_value("quake2", "udp.port");
}
void
diff --git a/epan/dissectors/packet-quakeworld.c b/epan/dissectors/packet-quakeworld.c
index 989b3a042c..d3e1e84037 100644
--- a/epan/dissectors/packet-quakeworld.c
+++ b/epan/dissectors/packet-quakeworld.c
@@ -30,7 +30,6 @@
#include <stdlib.h>
#include <epan/packet.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/expert.h>
#include <wsutil/strtoi.h>
@@ -705,8 +704,7 @@ static void
apply_quakeworld_prefs(void)
{
/* Port preference used to determine client/server */
- pref_t *quakeworld_port = prefs_find_preference(prefs_find_module("quakeworld"), "udp.port");
- gbl_quakeworldServerPort = *quakeworld_port->varp.uint;
+ gbl_quakeworldServerPort = prefs_get_uint_value("quakeworld", "udp.port");
}
void
diff --git a/epan/dissectors/packet-rsync.c b/epan/dissectors/packet-rsync.c
index 9ca13d66c6..c2c8d6acb9 100644
--- a/epan/dissectors/packet-rsync.c
+++ b/epan/dissectors/packet-rsync.c
@@ -30,7 +30,6 @@
#include <epan/packet.h>
#include <epan/conversation.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/proto_data.h>
void proto_register_rsync(void);
@@ -312,8 +311,7 @@ static void
apply_rsync_prefs(void)
{
/* Rsync uses the port preference to determine client/server */
- pref_t *rsync_port = prefs_find_preference(prefs_find_module("rsync"), "tcp.port");
- glb_rsync_tcp_port = *rsync_port->varp.uint;
+ glb_rsync_tcp_port = prefs_get_uint_value("rsync", "tcp.port");
}
/* Register protocol with Wireshark. */
diff --git a/epan/dissectors/packet-s5066dts.c b/epan/dissectors/packet-s5066dts.c
index 91cac818cb..5db22d95d5 100644
--- a/epan/dissectors/packet-s5066dts.c
+++ b/epan/dissectors/packet-s5066dts.c
@@ -29,7 +29,6 @@
#include <epan/packet.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/expert.h>
#include "packet-tcp.h" /* For tcp_dissect_pdus() */
#include <epan/crc16-tvb.h>
@@ -955,8 +954,7 @@ static void
apply_s5066dts_prefs(void)
{
/* STANAG 5066 uses the port preference for some heuristics */
- pref_t *s5066dts_port = prefs_find_preference(prefs_find_module("s5066dts"), "tcp.port");
- config_s5066dts_port = *s5066dts_port->varp.uint;
+ config_s5066dts_port = prefs_get_uint_value("s5066dts", "tcp.port");;
}
void proto_register_s5066dts (void)
diff --git a/epan/dissectors/packet-tds.c b/epan/dissectors/packet-tds.c
index c3554c9c9c..90c5980122 100644
--- a/epan/dissectors/packet-tds.c
+++ b/epan/dissectors/packet-tds.c
@@ -151,7 +151,6 @@
#include <epan/show_exception.h>
#include <epan/reassemble.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/expert.h>
#include "packet-tcp.h"
@@ -4225,9 +4224,8 @@ version_convert( gchar *result, guint32 hexver )
static void
apply_tds_prefs(void) {
- pref_t *tds_ports = prefs_find_preference(prefs_find_module("tds"), "tcp.port");
-
- tds_tcp_ports = range_copy(*tds_ports->varp.range);
+ g_free(tds_tcp_ports);
+ tds_tcp_ports = prefs_get_range_value("tds", "tcp.port");
}
/* Register the protocol with Wireshark */
diff --git a/epan/dissectors/packet-tftp.c b/epan/dissectors/packet-tftp.c
index 13ca3588a1..b60c716222 100644
--- a/epan/dissectors/packet-tftp.c
+++ b/epan/dissectors/packet-tftp.c
@@ -45,7 +45,6 @@
#include <epan/conversation.h>
#include <epan/expert.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/tap.h>
#include "packet-tftp.h"
@@ -92,7 +91,7 @@ static dissector_handle_t tftp_handle;
void proto_reg_handoff_tftp (void);
/* User definable values */
-static range_t *global_tftp_port_range;
+static range_t *global_tftp_port_range = NULL;
/* minimum length is an ACK message of 4 bytes */
#define MIN_HDR_LEN 4
@@ -605,9 +604,8 @@ dissect_tftp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
static void
apply_tftp_prefs(void) {
- pref_t *tftp_ports = prefs_find_preference(prefs_find_module("tftp"), "udp.port");
-
- global_tftp_port_range = range_copy(*tftp_ports->varp.range);
+ g_free(global_tftp_port_range);
+ global_tftp_port_range = prefs_get_range_value("tftp", "udp.port");
}
void
diff --git a/epan/dissectors/packet-uaudp.c b/epan/dissectors/packet-uaudp.c
index e193036840..a1efca078f 100644
--- a/epan/dissectors/packet-uaudp.c
+++ b/epan/dissectors/packet-uaudp.c
@@ -25,7 +25,6 @@
#include "epan/packet.h"
#include "epan/prefs.h"
-#include "epan/prefs-int.h"
#include "wsutil/report_err.h"
#include "wsutil/inet_addr.h"
@@ -359,9 +358,8 @@ static int dissect_uaudp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
static void
apply_uaudp_prefs(void) {
- pref_t *ua_ports = prefs_find_preference(prefs_find_module("uaudp"), "udp.port");
-
- ua_udp_range = range_copy(*ua_ports->varp.range);
+ g_free(ua_udp_range);
+ ua_udp_range = prefs_get_range_value("uaudp", "udp.port");
if (*pref_sys_ip_s) {
use_sys_ip = ws_inet_pton4(pref_sys_ip_s, &sys_ip);
diff --git a/epan/dissectors/packet-vnc.c b/epan/dissectors/packet-vnc.c
index f8991b168d..8bfd03e115 100644
--- a/epan/dissectors/packet-vnc.c
+++ b/epan/dissectors/packet-vnc.c
@@ -82,7 +82,6 @@
#include <epan/packet.h>
#include <epan/conversation.h>
#include <epan/prefs.h>
-#include <epan/prefs-int.h>
#include <epan/expert.h>
#include <epan/proto_data.h>
#include "packet-x11.h" /* This contains the extern for the X11 value_string_ext
@@ -3461,9 +3460,8 @@ vnc_get_depth(packet_info *pinfo)
/* Preference callbacks */
static void
apply_vnc_prefs(void) {
- pref_t *vnc_ports = prefs_find_preference(prefs_find_module("vnc"), "tcp.port");
-
- vnc_tcp_range = range_copy(*vnc_ports->varp.range);
+ g_free(vnc_tcp_range);
+ vnc_tcp_range = prefs_get_range_value("vnc", "tcp.port");
}
/* Register the protocol with Wireshark */
diff --git a/epan/prefs.c b/epan/prefs.c
index 224c6dc35a..43eec4d726 100644
--- a/epan/prefs.c
+++ b/epan/prefs.c
@@ -3786,6 +3786,22 @@ prefs_set_pref(char *prefarg)
return ret;
}
+guint prefs_get_uint_value(const char *module_name, const char* pref_name)
+{
+ pref_t *pref = prefs_find_preference(prefs_find_module(module_name), pref_name);
+ g_assert(pref != NULL);
+
+ return *pref->varp.uint;
+}
+
+range_t* prefs_get_range_value(const char *module_name, const char* pref_name)
+{
+ pref_t *pref = prefs_find_preference(prefs_find_module(module_name), pref_name);
+ g_assert(pref != NULL);
+
+ return range_copy(*pref->varp.range);
+}
+
/*
* Returns TRUE if the given device is hidden
*/
diff --git a/epan/prefs.h b/epan/prefs.h
index 220de860ea..912037431a 100644
--- a/epan/prefs.h
+++ b/epan/prefs.h
@@ -623,6 +623,17 @@ WS_DLL_PUBLIC prefs_set_pref_e prefs_set_pref(char *prefarg);
gboolean prefs_get_preference_obsolete(pref_t *pref);
prefs_set_pref_e prefs_set_preference_obsolete(pref_t *pref);
+/*
+ * Get current preference uint value. This allows the preference structure
+ * to remain hidden from those that doesn't really need it
+ */
+WS_DLL_PUBLIC guint prefs_get_uint_value(const char *module_name, const char* pref_name);
+
+/*
+ * Get the current range_copy()ed range preference value (so it needs to be freed). This allows the
+ * preference structure to remain hidden from those that doesn't really need it.
+ */
+WS_DLL_PUBLIC range_t* prefs_get_range_value(const char *module_name, const char* pref_name);
/*
* Returns TRUE if the given device is hidden