]> err.no Git - linux-2.6/blobdiff - net/ipv6/xfrm6_input.c
[IPV6]: Remove unused code in ndisc_send_redirect().
[linux-2.6] / net / ipv6 / xfrm6_input.c
index f835ab458f5b73220431af58f92b5d7575eb9b50..a4714d76ae6bd72e0a1379a70aa8153e0653eb46 100644 (file)
@@ -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)
@@ -72,6 +70,7 @@ int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
 
                sp = secpath_dup(skb->sp);
                if (!sp) {
+                       XFRM_INC_STATS(LINUX_MIB_XFRMINERROR);
                        goto drop;
                }
                if (skb->sp)
@@ -80,6 +79,7 @@ int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
        }
 
        if (1 + skb->sp->len == XFRM_MAX_DEPTH) {
+               XFRM_INC_STATS(LINUX_MIB_XFRMINBUFFERERROR);
                goto drop;
        }
 
@@ -149,6 +149,8 @@ int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
        }
 
        if (!x) {
+               XFRM_INC_STATS(LINUX_MIB_XFRMINNOSTATES);
+               xfrm_audit_state_notfound_simple(skb, AF_INET6);
                goto drop;
        }