aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-quake2.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-quake2.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-quake2.c')
-rw-r--r--epan/dissectors/packet-quake2.c43
1 files changed, 15 insertions, 28 deletions
diff --git a/epan/dissectors/packet-quake2.c b/epan/dissectors/packet-quake2.c
index 5ca865a874..030c61a8b9 100644
--- a/epan/dissectors/packet-quake2.c
+++ b/epan/dissectors/packet-quake2.c
@@ -32,8 +32,10 @@
#include <epan/packet.h>
#include <epan/prefs.h>
+#include <epan/prefs-int.h>
void proto_register_quake2(void);
+void proto_reg_handoff_quake2(void);
static int proto_quake2 = -1;
@@ -79,7 +81,7 @@ static gint ett_quake2_game_clc_cmd_move_bitfield = -1;
static gint ett_quake2_game_clc_cmd_move_moves = -1;
-#define PORT_MASTER 27910
+#define PORT_MASTER 27910 /* Not IANA registered */
static guint gbl_quake2ServerPort=PORT_MASTER;
@@ -681,8 +683,13 @@ dissect_quake2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _
return tvb_captured_length(tvb);
}
-
-void proto_reg_handoff_quake2(void);
+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;
+}
void
proto_register_quake2(void)
@@ -822,42 +829,22 @@ proto_register_quake2(void)
&ett_quake2_game_clc_cmd_move_moves,
&ett_quake2_game_clc_cmd_move_bitfield
};
- module_t *quake2_module;
- proto_quake2 = proto_register_protocol("Quake II Network Protocol",
- "QUAKE2", "quake2");
+ proto_quake2 = proto_register_protocol("Quake II Network Protocol", "QUAKE2", "quake2");
proto_register_field_array(proto_quake2, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
/* Register a configuration option for port */
- quake2_module = prefs_register_protocol(proto_quake2,
- proto_reg_handoff_quake2);
- prefs_register_uint_preference(quake2_module, "udp.port",
- "Quake II Server UDP Port",
- "Set the UDP port for the Quake II Server",
- 10, &gbl_quake2ServerPort);
+ prefs_register_protocol(proto_quake2, apply_quake2_prefs);
}
-
void
proto_reg_handoff_quake2(void)
{
- static gboolean Initialized=FALSE;
- static dissector_handle_t quake2_handle;
- static guint ServerPort;
-
- if (!Initialized) {
- quake2_handle = create_dissector_handle(dissect_quake2,
- proto_quake2);
- Initialized=TRUE;
- } else {
- dissector_delete_uint("udp.port", ServerPort, quake2_handle);
- }
-
- /* set port for future deletes */
- ServerPort=gbl_quake2ServerPort;
+ dissector_handle_t quake2_handle;
+ quake2_handle = create_dissector_handle(dissect_quake2, proto_quake2);
- dissector_add_uint("udp.port", gbl_quake2ServerPort, quake2_handle);
+ dissector_add_uint("udp.port", PORT_MASTER, quake2_handle);
}
/*