aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-lge_monitor.c
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2008-09-15 16:36:06 +0000
committerBill Meier <wmeier@newsguy.com>2008-09-15 16:36:06 +0000
commit9a6db6e9451d47d812c3213ce42e633927b900d0 (patch)
treefaee990d1203f64304a68bb091e844d0fcf3fe4f /epan/dissectors/packet-lge_monitor.c
parent1e7e3cee51ac00f1a54c9c40f9adc90d82987a62 (diff)
proto_reg-handoff: Use dissector_add_handle instead of registering to port 0;
Also: minor cleanup related to proto_reg_handoff svn path=/trunk/; revision=26197
Diffstat (limited to 'epan/dissectors/packet-lge_monitor.c')
-rw-r--r--epan/dissectors/packet-lge_monitor.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/epan/dissectors/packet-lge_monitor.c b/epan/dissectors/packet-lge_monitor.c
index 65e539199d..8197a7e788 100644
--- a/epan/dissectors/packet-lge_monitor.c
+++ b/epan/dissectors/packet-lge_monitor.c
@@ -53,7 +53,6 @@ static int ett_lge_monitor = -1;
static guint LGEMonitorUDPPort = 0;
-static guint udp_port = 0;
static dissector_handle_t mtp3_handle, m3ua_handle, sccp_handle, sctp_handle;
static const value_string lge_monitor_dir_vals[] = {
@@ -126,24 +125,29 @@ dissect_lge_monitor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
void
proto_reg_handoff_lge_monitor(void)
{
- dissector_handle_t lge_monitor_handle;
- static int lge_monitor_prefs_initialized = FALSE;
-
- lge_monitor_handle = create_dissector_handle(dissect_lge_monitor, proto_lge_monitor);
+ static dissector_handle_t lge_monitor_handle;
+ static guint saved_udp_port;
+ static gboolean lge_monitor_prefs_initialized = FALSE;
if (!lge_monitor_prefs_initialized) {
+ lge_monitor_handle = create_dissector_handle(dissect_lge_monitor, proto_lge_monitor);
+ dissector_add_handle("udp.port", lge_monitor_handle); /* for 'decode-as' */
+ mtp3_handle = find_dissector("mtp3");
+ m3ua_handle = find_dissector("m3ua");
+ sccp_handle = find_dissector("sccp");
+ sctp_handle = find_dissector("sctp");
lge_monitor_prefs_initialized = TRUE;
}
else {
- dissector_delete("udp.port", udp_port, lge_monitor_handle);
+ if (saved_udp_port != 0) {
+ dissector_delete("udp.port", saved_udp_port, lge_monitor_handle);
+ }
}
- udp_port = LGEMonitorUDPPort;
- dissector_add("udp.port", LGEMonitorUDPPort, lge_monitor_handle);
- mtp3_handle = find_dissector("mtp3");
- m3ua_handle = find_dissector("m3ua");
- sccp_handle = find_dissector("sccp");
- sctp_handle = find_dissector("sctp");
+ if (LGEMonitorUDPPort != 0) {
+ dissector_add("udp.port", LGEMonitorUDPPort, lge_monitor_handle);
+ }
+ saved_udp_port = LGEMonitorUDPPort;
}
void