aboutsummaryrefslogtreecommitdiffstats
path: root/packet-ldp.c
diff options
context:
space:
mode:
Diffstat (limited to 'packet-ldp.c')
-rw-r--r--packet-ldp.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/packet-ldp.c b/packet-ldp.c
index 569fefd284..8a37020f45 100644
--- a/packet-ldp.c
+++ b/packet-ldp.c
@@ -1,13 +1,14 @@
/* packet-ldp.c
* Routines for LDP (RFC 3036) packet disassembly
*
- * $Id: packet-ldp.c,v 1.21 2001/11/27 05:01:14 guy Exp $
+ * $Id: packet-ldp.c,v 1.22 2001/12/03 03:59:36 guy Exp $
*
* Copyright (c) November 2000 by Richard Sharpe <rsharpe@ns.aus.com>
*
* Ethereal - Network traffic analyzer
- * By Gerald Combs
+ * By Gerald Combs <gerald@ethereal.com>
* Copyright 1999 Gerald Combs
+ *
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
@@ -883,16 +884,20 @@ void
proto_reg_handoff_ldp(void)
{
static int ldp_prefs_initialized = FALSE;
+ static dissector_handle_t ldp_tcp_handle, ldp_handle;
+
+ if (!ldp_prefs_initialized) {
- if (ldp_prefs_initialized) {
+ ldp_tcp_handle = create_dissector_handle(dissect_ldp_tcp, proto_ldp);
+ ldp_handle = create_dissector_handle(dissect_ldp, proto_ldp);
- dissector_delete("tcp.port", tcp_port, dissect_ldp);
- dissector_delete("udp.port", udp_port, dissect_ldp);
+ ldp_prefs_initialized = TRUE;
}
else {
- ldp_prefs_initialized = TRUE;
+ dissector_delete("tcp.port", tcp_port, ldp_tcp_handle);
+ dissector_delete("udp.port", udp_port, ldp_handle);
}
@@ -901,7 +906,7 @@ proto_reg_handoff_ldp(void)
tcp_port = global_ldp_tcp_port;
udp_port = global_ldp_udp_port;
- dissector_add("tcp.port", global_ldp_tcp_port, dissect_ldp_tcp, proto_ldp);
- dissector_add("udp.port", global_ldp_udp_port, dissect_ldp, proto_ldp);
+ dissector_add("tcp.port", global_ldp_tcp_port, ldp_tcp_handle);
+ dissector_add("udp.port", global_ldp_udp_port, ldp_handle);
}