From 4f2845d9a097843392ebc6b3393b7088a531c2cb Mon Sep 17 00:00:00 2001 From: Bill Meier Date: Mon, 15 Sep 2008 18:48:28 +0000 Subject: [PATCH] proto_reg-handoff: Fix to properly delete/add port when pref changed; cleanup. svn path=/trunk/; revision=26202 --- epan/dissectors/packet-dis.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/epan/dissectors/packet-dis.c b/epan/dissectors/packet-dis.c index e7b6121203..1ac4257faa 100644 --- a/epan/dissectors/packet-dis.c +++ b/epan/dissectors/packet-dis.c @@ -58,7 +58,6 @@ static gint ett_dis = -1; static gint ett_dis_header = -1; static gint ett_dis_payload = -1; -static dissector_handle_t dis_dissector_handle; static guint dis_udp_port = DEFAULT_DIS_UDP_PORT; static const char* dis_proto_name = "Distributed Interactive Simulation"; @@ -160,17 +159,21 @@ static gint dissect_dis(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) void proto_reg_handoff_dis(void) { static gboolean dis_prefs_initialized = FALSE; + static dissector_handle_t dis_dissector_handle; + static guint saved_dis_udp_port; if (!dis_prefs_initialized) { dis_dissector_handle = new_create_dissector_handle(dissect_dis, proto_dis); + dis_prefs_initialized = TRUE; } else { - dissector_delete("udp.port", dis_udp_port, dis_dissector_handle); + dissector_delete("udp.port", saved_dis_udp_port, dis_dissector_handle); } dissector_add("udp.port", dis_udp_port, dis_dissector_handle); + saved_dis_udp_port = dis_udp_port; } /* Registration routine for the DIS protocol.