diff options
author | Michael Mann <mmann78@netscape.net> | 2016-10-05 16:33:54 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-10-13 02:51:18 +0000 |
commit | 2eb7b05b8c9c6408268f0d1e81f0a18a02610f1c (patch) | |
tree | bd0a909e3d506ea2e61c446aa8a809b6f728af3b /epan/dissectors/packet-quake2.c | |
parent | 4d8581d7e15fe4a80a53496b83a853271fc674b6 (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.c | 43 |
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); } /* |