]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv4/ah4.c
[TCP]: Fix sorting of SACK blocks.
[linux-2.6-omap-h63xx.git] / net / ipv4 / ah4.c
index 2b98943e6b025d378bb4a07153ef7b6198c8275d..67a5509e26fc1e7b18dcfdbafd92986a97626ccb 100644 (file)
@@ -14,7 +14,7 @@
  * into IP header for icv calculation. Options are already checked
  * for validity, so paranoia is not required. */
 
-static int ip_clear_mutable_options(struct iphdr *iph, u32 *daddr)
+static int ip_clear_mutable_options(struct iphdr *iph, __be32 *daddr)
 {
        unsigned char * optptr = (unsigned char*)(iph+1);
        int  l = iph->ihl*4 - sizeof(struct iphdr);
@@ -35,7 +35,7 @@ static int ip_clear_mutable_options(struct iphdr *iph, u32 *daddr)
                switch (*optptr) {
                case IPOPT_SEC:
                case 0x85:      /* Some "Extended Security" crap. */
-               case 0x86:      /* Another "Commercial Security" crap. */
+               case IPOPT_CIPSO:
                case IPOPT_RA:
                case 0x80|21:   /* RFC1770 */
                        break;
@@ -162,7 +162,7 @@ static int ah_input(struct xfrm_state *x, struct sk_buff *skb)
        iph->frag_off = 0;
        iph->check = 0;
        if (ihl > sizeof(*iph)) {
-               u32 dummy;
+               __be32 dummy;
                if (ip_clear_mutable_options(iph, &dummy))
                        goto out;
        }
@@ -265,7 +265,7 @@ static int ah_init_state(struct xfrm_state *x)
                goto error;
        
        x->props.header_len = XFRM_ALIGN8(sizeof(struct ip_auth_hdr) + ahp->icv_trunc_len);
-       if (x->props.mode)
+       if (x->props.mode == XFRM_MODE_TUNNEL)
                x->props.header_len += sizeof(struct iphdr);
        x->data = ahp;