diff options
author | Bill Meier <wmeier@newsguy.com> | 2008-09-15 16:36:06 +0000 |
---|---|---|
committer | Bill Meier <wmeier@newsguy.com> | 2008-09-15 16:36:06 +0000 |
commit | 9a6db6e9451d47d812c3213ce42e633927b900d0 (patch) | |
tree | faee990d1203f64304a68bb091e844d0fcf3fe4f /epan/dissectors/packet-lge_monitor.c | |
parent | 1e7e3cee51ac00f1a54c9c40f9adc90d82987a62 (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.c | 28 |
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 |