[PATCH] 2.5.45 net/ipv4/netfilter/ipt_TCPMSS.c - Fix for pmtu changes

From: David T Hollis (dhollis@davehollis.com)
Date: Wed Oct 30 2002 - 23:14:38 EST


This patch fixes ipt_TCPMSS.c to use the dst_pmtu function to pull the
destination MTU value.


--- net/ipv4/netfilter/ipt_TCPMSS.c.orig 2002-10-30 22:59:53.000000000 -0500
+++ net/ipv4/netfilter/ipt_TCPMSS.c 2002-10-30 23:08:58.000000000 -0500
@@ -48,6 +48,7 @@
         u_int16_t tcplen, newtotlen, oldval, newmss;
         unsigned int i;
         u_int8_t *opt;
+ struct rtable *rt;
 
         /* raw socket (tcpdump) may have clone of incoming skb: don't
            disturb it --RR */
@@ -85,14 +86,16 @@
                         return NF_DROP; /* or IPT_CONTINUE ?? */
                 }
 
- if((*pskb)->dst->pmtu <= (sizeof(struct iphdr) + sizeof(struct tcphdr))) {
+ rt = (struct rtable *)(*pskb)->dst;
+
+ if(dst_pmtu(&rt->u.dst) <= (sizeof(struct iphdr) + sizeof(struct tcphdr))) {
                         if (net_ratelimit())
                                 printk(KERN_ERR
- "ipt_tcpmss_target: unknown or invalid path-MTU (%d)\n", (*pskb)->dst->pmtu);
+ "ipt_tcpmss_target: unknown or invalid path-MTU (%d)\n", dst_pmtu(&rt->u.dst));
                         return NF_DROP; /* or IPT_CONTINUE ?? */
                 }
 
- newmss = (*pskb)->dst->pmtu - sizeof(struct iphdr) - sizeof(struct tcphdr);
+ newmss = dst_pmtu(&rt->u.dst) - sizeof(struct iphdr) - sizeof(struct tcphdr);
         } else
                 newmss = tcpmssinfo->mss;
 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Oct 31 2002 - 22:00:51 EST