2.5.45 net/ipv4/netfilter/ipt_TCPMSS.c - Fix for pmtu changes
PATCH 1/1 2.5.45 net/ipv4/netfilter/ipt_TCPMSS.c - Fix for pmtu changes
This patch fixes ipt_TCPMSS.c to use the dst_pmtu function to pull the destination MTU value.
ipv4/netfilter/ipt_TCPMSS.c renamed from ipv4/netfilter/ipt_TCPMSS.c.orig +6 -3
@@ -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;