summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJun-ichiro itojun Hagino <itojun@cvs.openbsd.org>2002-08-16 09:32:40 +0000
committerJun-ichiro itojun Hagino <itojun@cvs.openbsd.org>2002-08-16 09:32:40 +0000
commita15ddef05413dc7d1c8efbc20f3124b9c8bd9e76 (patch)
tree2fea2a6274775758bc098b6c3fe520f450aee0a7 /sys
parent66d742fdecd775e21f621e5470869f78d05ad9ab (diff)
pass unprocessed GRE packet to raw ip socket. binkertn@ ok
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet/ip_gre.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/netinet/ip_gre.c b/sys/netinet/ip_gre.c
index 64158122dbf..f6fe4d60943 100644
--- a/sys/netinet/ip_gre.c
+++ b/sys/netinet/ip_gre.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip_gre.c,v 1.18 2002/06/09 16:26:10 itojun Exp $ */
+/* $OpenBSD: ip_gre.c,v 1.19 2002/08/16 09:32:39 itojun Exp $ */
/* $NetBSD: ip_gre.c,v 1.9 1999/10/25 19:18:11 drochner Exp $ */
/*
@@ -62,6 +62,7 @@
#include <netinet/in_var.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
+#include <netinet/ip_var.h>
#include <netinet/ip_gre.h>
#include <netinet/if_ether.h>
#else
@@ -247,13 +248,13 @@ gre_input(struct mbuf *m, ...)
ret = gre_input2(m, hlen, IPPROTO_GRE);
/*
* ret == 0: packet not processed, but input from here
- * means no matching tunnel that is up is found,
- * so we can just free the mbuf and return. It is also
+ * means no matching tunnel that is up is found.
+ * we inject it to raw ip socket to see if anyone picks it up.
* possible that we received a WCCPv1-style GRE packet
* but we're not set to accept them.
*/
if (!ret)
- m_freem(m);
+ rip_input(m, hlen, IPPROTO_GRE);
}
/*