[IPSEC]: Move IP protocol setting from transforms into xfrm4_input.c
This patch makes the IPv4 x->type->input functions return the next protocol instead of setting it directly. This is identical to how we do things in IPv6 and will help us merge common code on the input path. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
ceb1eec829
commit
631a6698d0
@@ -75,7 +75,6 @@ out:
|
||||
static int ipcomp_input(struct xfrm_state *x, struct sk_buff *skb)
|
||||
{
|
||||
int err = -ENOMEM;
|
||||
struct iphdr *iph;
|
||||
struct ip_comp_hdr *ipch;
|
||||
|
||||
if (skb_linearize_cow(skb))
|
||||
@@ -84,12 +83,14 @@ static int ipcomp_input(struct xfrm_state *x, struct sk_buff *skb)
|
||||
skb->ip_summed = CHECKSUM_NONE;
|
||||
|
||||
/* Remove ipcomp header and decompress original payload */
|
||||
iph = ip_hdr(skb);
|
||||
ipch = (void *)skb->data;
|
||||
iph->protocol = ipch->nexthdr;
|
||||
skb->transport_header = skb->network_header + sizeof(*ipch);
|
||||
__skb_pull(skb, sizeof(*ipch));
|
||||
err = ipcomp_decompress(x, skb);
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
err = ipch->nexthdr;
|
||||
|
||||
out:
|
||||
return err;
|
||||
|
Reference in New Issue
Block a user