diff options
Diffstat (limited to 'net/ipv4/ipip.c')
-rw-r--r-- | net/ipv4/ipip.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c index 4069795fb..e343f34e8 100644 --- a/net/ipv4/ipip.c +++ b/net/ipv4/ipip.c @@ -1,7 +1,7 @@ /* * Linux NET3: IP/IP protocol decoder. * - * Version: $Id: ipip.c,v 1.34 2000/05/22 08:12:19 davem Exp $ + * Version: $Id: ipip.c,v 1.35 2000/07/07 01:55:20 davem Exp $ * * Authors: * Sam Lantinga (slouken@cs.ucdavis.edu) 02/01/95 @@ -107,6 +107,7 @@ #include <linux/if_arp.h> #include <linux/mroute.h> #include <linux/init.h> +#include <linux/netfilter_ipv4.h> #include <net/sock.h> #include <net/ip.h> @@ -499,6 +500,12 @@ int ipip_rcv(struct sk_buff *skb, unsigned short len) return 0; } +/* Need this wrapper because NF_HOOK takes the function address */ +static inline int do_ip_send(struct sk_buff *skb) +{ + return ip_send(skb); +} + /* * This function assumes it is being called from dev_queue_xmit() * and that skb is filled properly by that function. @@ -631,7 +638,8 @@ static int ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) stats->tx_bytes += skb->len; stats->tx_packets++; - ip_send(skb); + NF_HOOK(PF_INET, NF_IP_LOCAL_OUT, skb, NULL, rt->u.dst.dev, + do_ip_send); tunnel->recursion--; return 0; |