aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-capwap.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2016-10-05 16:33:54 -0400
committerMichael Mann <mmann78@netscape.net>2016-10-13 02:51:18 +0000
commit2eb7b05b8c9c6408268f0d1e81f0a18a02610f1c (patch)
treebd0a909e3d506ea2e61c446aa8a809b6f728af3b /epan/dissectors/packet-capwap.c
parent4d8581d7e15fe4a80a53496b83a853271fc674b6 (diff)
Convert most UDP dissectors to use "auto" preferences.
Similar to the "tcp.port" changes in I99604f95d426ad345f4b494598d94178b886eb67, convert dissectors that use "udp.port". More cleanup done on dissectors that use both TCP and UDP dissector tables, so that less preference callbacks exist. Change-Id: If07be9b9e850c244336a7069599cd554ce312dd3 Reviewed-on: https://code.wireshark.org/review/18120 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/dissectors/packet-capwap.c')
-rw-r--r--epan/dissectors/packet-capwap.c56
1 files changed, 23 insertions, 33 deletions
diff --git a/epan/dissectors/packet-capwap.c b/epan/dissectors/packet-capwap.c
index 0eed93d43f..bf7bcfd087 100644
--- a/epan/dissectors/packet-capwap.c
+++ b/epan/dissectors/packet-capwap.c
@@ -25,6 +25,7 @@
#include <epan/packet.h>
#include <epan/prefs.h>
+#include <epan/prefs-int.h>
#include <epan/reassemble.h>
#include <epan/expert.h>
@@ -37,7 +38,6 @@ void proto_reg_handoff_capwap(void);
#define UDP_PORT_CAPWAP_CONTROL 5246
#define UDP_PORT_CAPWAP_DATA 5247
-static guint global_capwap_control_udp_port = UDP_PORT_CAPWAP_CONTROL;
static guint global_capwap_data_udp_port = UDP_PORT_CAPWAP_DATA;
static gboolean global_capwap_draft_8_cisco = FALSE;
static gboolean global_capwap_reassemble = TRUE;
@@ -3395,6 +3395,13 @@ dissect_capwap_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
return tvb_captured_length(tvb);
}
+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;
+}
+
void
proto_register_capwap_control(void)
{
@@ -5764,15 +5771,9 @@ proto_register_capwap_control(void)
register_init_routine(&capwap_reassemble_init);
register_cleanup_routine(&capwap_reassemble_cleanup);
- capwap_module = prefs_register_protocol(proto_capwap_control, proto_reg_handoff_capwap);
-
- prefs_register_uint_preference(capwap_module, "udp.port.control", "CAPWAP Control UDP Port",
- "Set the port for CAPWAP Control messages (if other than the default of 5246)",
- 10, &global_capwap_control_udp_port);
-
- prefs_register_uint_preference(capwap_module, "udp.port.data", "CAPWAP Data UDP Port",
- "Set the port for CAPWAP Data messages (if other than the default of 5247)",
- 10, &global_capwap_data_udp_port);
+ capwap_module = prefs_register_protocol(proto_capwap_control, NULL);
+ /* Need to create a placeholder for "port" preferences so there is a callback */
+ prefs_register_protocol(proto_capwap_data, apply_capwap_prefs);
prefs_register_bool_preference(capwap_module, "draft_8_cisco", "Cisco Wireless Controller Support",
"Enable support of Cisco Wireless Controller (based on old 8 draft revision).",
@@ -5791,29 +5792,18 @@ proto_register_capwap_control(void)
void
proto_reg_handoff_capwap(void)
{
- static gboolean inited = FALSE;
- static dissector_handle_t capwap_control_handle, capwap_data_handle;
- static guint capwap_control_udp_port, capwap_data_udp_port;
-
- if (!inited) {
- capwap_control_handle = create_dissector_handle(dissect_capwap_control, proto_capwap_control);
- capwap_data_handle = create_dissector_handle(dissect_capwap_data, proto_capwap_data);
- dtls_handle = find_dissector_add_dependency("dtls", proto_capwap_control);
- find_dissector_add_dependency("dtls", proto_capwap_data);
- ieee8023_handle = find_dissector_add_dependency("eth_withoutfcs", proto_capwap_data);
- ieee80211_handle = find_dissector_add_dependency("wlan_withoutfcs", proto_capwap_data);
- ieee80211_bsfc_handle = find_dissector_add_dependency("wlan_bsfc", proto_capwap_data);
-
- inited = TRUE;
- } else {
- dissector_delete_uint("udp.port", capwap_control_udp_port, capwap_control_handle);
- dissector_delete_uint("udp.port", capwap_data_udp_port, capwap_data_handle);
- }
- dissector_add_uint("udp.port", global_capwap_control_udp_port, capwap_control_handle);
- dissector_add_uint("udp.port", global_capwap_data_udp_port, capwap_data_handle);
-
- capwap_control_udp_port = global_capwap_control_udp_port;
- capwap_data_udp_port = global_capwap_data_udp_port;
+ dissector_handle_t capwap_control_handle, capwap_data_handle;
+
+ capwap_control_handle = create_dissector_handle(dissect_capwap_control, proto_capwap_control);
+ capwap_data_handle = create_dissector_handle(dissect_capwap_data, proto_capwap_data);
+ dtls_handle = find_dissector_add_dependency("dtls", proto_capwap_control);
+ find_dissector_add_dependency("dtls", proto_capwap_data);
+ ieee8023_handle = find_dissector_add_dependency("eth_withoutfcs", proto_capwap_data);
+ ieee80211_handle = find_dissector_add_dependency("wlan_withoutfcs", proto_capwap_data);
+ ieee80211_bsfc_handle = find_dissector_add_dependency("wlan_bsfc", proto_capwap_data);
+
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_CAPWAP_CONTROL, capwap_control_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_CAPWAP_DATA, capwap_data_handle);
}
/*
* Editor modelines