aboutsummaryrefslogtreecommitdiffstats
path: root/packet-gre.c
diff options
context:
space:
mode:
Diffstat (limited to 'packet-gre.c')
-rw-r--r--packet-gre.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/packet-gre.c b/packet-gre.c
index 2af23462a8..bcfc58b269 100644
--- a/packet-gre.c
+++ b/packet-gre.c
@@ -2,7 +2,7 @@
* Routines for the Generic Routing Encapsulation (GRE) protocol
* Brad Robel-Forrest <brad.robel-forrest@watchguard.com>
*
- * $Id: packet-gre.c,v 1.26 2000/11/16 07:35:37 guy Exp $
+ * $Id: packet-gre.c,v 1.27 2000/11/18 10:38:24 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -74,6 +74,8 @@ static const value_string typevals[] = {
{ 0, NULL }
};
+static dissector_handle_t ip_handle;
+
static void
dissect_gre(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
@@ -212,14 +214,14 @@ dissect_gre(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
dissect_ppp(next_tvb, &pi, tree);
break;
case GRE_IP:
- dissect_ip(pd, offset, fd, tree);
+ old_call_dissector(ip_handle, pd, offset, fd, tree);
break;
case GRE_WCCP:
if (is_wccp2) {
proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(guint32), "WCCPv2 Data");
offset += 4;
}
- dissect_ip(pd, offset, fd, tree);
+ old_call_dissector(ip_handle, pd, offset, fd, tree);
break;
case GRE_IPX:
next_tvb = tvb_create_from_top(offset);
@@ -304,4 +306,9 @@ void
proto_reg_handoff_gre(void)
{
old_dissector_add("ip.proto", IP_PROTO_GRE, dissect_gre);
+
+ /*
+ * Get a handle for the IP dissector.
+ */
+ ip_handle = find_dissector("ip");
}