From c2359ea0b17e62e222a0eaeb98a9583331028fed Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Sun, 30 Dec 2007 21:10:14 -0800 Subject: [PATCH] --- yaml --- r: 78636 b: refs/heads/master c: 0883ae0e5599656b5f3b0e9ce474e01dee7dfee4 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv4/xfrm4_input.c | 12 +++++------- trunk/net/ipv6/xfrm6_input.c | 12 +++++------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index 93ab62c0c486..72c0c5dd06f1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fcb8c156c8277ee9d71c8c81587d494c9c5240b3 +refs/heads/master: 0883ae0e5599656b5f3b0e9ce474e01dee7dfee4 diff --git a/trunk/net/ipv4/xfrm4_input.c b/trunk/net/ipv4/xfrm4_input.c index 33f990d56c91..390dcb1354a5 100644 --- a/trunk/net/ipv4/xfrm4_input.c +++ b/trunk/net/ipv4/xfrm4_input.c @@ -51,7 +51,11 @@ int xfrm4_transport_finish(struct sk_buff *skb, int async) iph->protocol = XFRM_MODE_SKB_CB(skb)->protocol; -#ifdef CONFIG_NETFILTER +#ifndef CONFIG_NETFILTER + if (!async) + return -iph->protocol; +#endif + __skb_push(skb, skb->data - skb_network_header(skb)); iph->tot_len = htons(skb->len); ip_send_check(iph); @@ -59,12 +63,6 @@ int xfrm4_transport_finish(struct sk_buff *skb, int async) NF_HOOK(PF_INET, NF_INET_PRE_ROUTING, skb, skb->dev, NULL, xfrm4_rcv_encap_finish); return 0; -#else - if (async) - return xfrm4_rcv_encap_finish(skb); - - return -iph->protocol; -#endif } /* If it's a keepalive packet, then just eat it. diff --git a/trunk/net/ipv6/xfrm6_input.c b/trunk/net/ipv6/xfrm6_input.c index 063ce6ed1bd0..a4714d76ae6b 100644 --- a/trunk/net/ipv6/xfrm6_input.c +++ b/trunk/net/ipv6/xfrm6_input.c @@ -34,19 +34,17 @@ int xfrm6_transport_finish(struct sk_buff *skb, int async) skb_network_header(skb)[IP6CB(skb)->nhoff] = XFRM_MODE_SKB_CB(skb)->protocol; -#ifdef CONFIG_NETFILTER +#ifndef CONFIG_NETFILTER + if (!async) + return 1; +#endif + ipv6_hdr(skb)->payload_len = htons(skb->len); __skb_push(skb, skb->data - skb_network_header(skb)); NF_HOOK(PF_INET6, NF_INET_PRE_ROUTING, skb, skb->dev, NULL, ip6_rcv_finish); return -1; -#else - if (async) - return ip6_rcv_finish(skb); - - return 1; -#endif } int xfrm6_rcv(struct sk_buff *skb)