aboutsummaryrefslogtreecommitdiffstats
path: root/packet-ip.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2001-12-03 04:00:26 +0000
committerGuy Harris <guy@alum.mit.edu>2001-12-03 04:00:26 +0000
commitbced8711f67b5dba76e9d6cdfd1a0246b235df27 (patch)
tree6303e298a7b136a1e1da306950398c99e3e71432 /packet-ip.c
parent8d0ea8bc932de5cf57183a593be160515af064d9 (diff)
Make "dissector_add()", "dissector_delete()", and "dissector_change()"
take a dissector handle as an argument, rather than a pointer to a dissector function and a protocol ID. Associate dissector handles with dissector table entries. svn path=/trunk/; revision=4308
Diffstat (limited to 'packet-ip.c')
-rw-r--r--packet-ip.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/packet-ip.c b/packet-ip.c
index cec90b0678..f4184d2e13 100644
--- a/packet-ip.c
+++ b/packet-ip.c
@@ -1,7 +1,7 @@
/* packet-ip.c
* Routines for IP and miscellaneous IP protocol packet disassembly
*
- * $Id: packet-ip.c,v 1.149 2001/12/02 00:07:46 guy Exp $
+ * $Id: packet-ip.c,v 1.150 2001/12/03 03:59:35 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -1798,18 +1798,21 @@ proto_register_ip(void)
void
proto_reg_handoff_ip(void)
{
+ dissector_handle_t ip_handle;
+
data_handle = find_dissector("data");
- dissector_add("ethertype", ETHERTYPE_IP, dissect_ip, proto_ip);
- dissector_add("ppp.protocol", PPP_IP, dissect_ip, proto_ip);
- dissector_add("ppp.protocol", ETHERTYPE_IP, dissect_ip, proto_ip);
- dissector_add("gre.proto", ETHERTYPE_IP, dissect_ip, proto_ip);
- dissector_add("gre.proto", GRE_WCCP, dissect_ip, proto_ip);
- dissector_add("llc.dsap", SAP_IP, dissect_ip, proto_ip);
- dissector_add("ip.proto", IP_PROTO_IPIP, dissect_ip, proto_ip);
- dissector_add("null.type", BSD_AF_INET, dissect_ip, proto_ip);
- dissector_add("chdlctype", ETHERTYPE_IP, dissect_ip, proto_ip);
- dissector_add("fr.ietf", NLPID_IP, dissect_ip, proto_ip);
- dissector_add("x.25.spi", NLPID_IP, dissect_ip, proto_ip);
+ ip_handle = find_dissector("ip");
+ dissector_add("ethertype", ETHERTYPE_IP, ip_handle);
+ dissector_add("ppp.protocol", PPP_IP, ip_handle);
+ dissector_add("ppp.protocol", ETHERTYPE_IP, ip_handle);
+ dissector_add("gre.proto", ETHERTYPE_IP, ip_handle);
+ dissector_add("gre.proto", GRE_WCCP, ip_handle);
+ dissector_add("llc.dsap", SAP_IP, ip_handle);
+ dissector_add("ip.proto", IP_PROTO_IPIP, ip_handle);
+ dissector_add("null.type", BSD_AF_INET, ip_handle);
+ dissector_add("chdlctype", ETHERTYPE_IP, ip_handle);
+ dissector_add("fr.ietf", NLPID_IP, ip_handle);
+ dissector_add("x.25.spi", NLPID_IP, ip_handle);
}
void
@@ -1916,10 +1919,13 @@ proto_register_icmp(void)
void
proto_reg_handoff_icmp(void)
{
+ dissector_handle_t icmp_handle;
+
/*
* Get handle for the IP dissector.
*/
ip_handle = find_dissector("ip");
- dissector_add("ip.proto", IP_PROTO_ICMP, dissect_icmp, proto_icmp);
+ icmp_handle = create_dissector_handle(dissect_icmp, proto_icmp);
+ dissector_add("ip.proto", IP_PROTO_ICMP, icmp_handle);
}