Meanwhile, try this patch.
Darren
Index: ip_nat.c
===================================================================
RCS file: /devel/CVS/IP-Filter/ip_nat.c,v
retrieving revision 2.195.2.41
diff -c -r2.195.2.41 ip_nat.c
*** ip_nat.c 15 Jul 2005 20:34:17 -0000 2.195.2.41
--- ip_nat.c 18 Jul 2005 12:12:22 -0000
***************
*** 3804,3810 ****
CALC_SUMD(s1, s2, sumd);
fix_outcksum(fin, &fin->fin_ip->ip_sum, sumd);
}
! #if !defined(_KERNEL) || defined(MENTAT) || defined(__sgi) || defined(linux)
else {
if (nat->nat_dir == NAT_OUTBOUND)
fix_outcksum(fin, &fin->fin_ip->ip_sum,
--- 3804,3810 ----
CALC_SUMD(s1, s2, sumd);
fix_outcksum(fin, &fin->fin_ip->ip_sum, sumd);
}
! #if 1
else {
if (nat->nat_dir == NAT_OUTBOUND)
fix_outcksum(fin, &fin->fin_ip->ip_sum,
***************
*** 4113,4120 ****
* fast forwarding (so that it doesn't need to be recomputed) but with
* header checksum offloading, perhaps it is a moot point.
*/
! #if !defined(_KERNEL) || defined(MENTAT) || defined(__sgi) || \
! defined(__osf__) || defined(linux)
if (nat->nat_dir == NAT_OUTBOUND)
fix_incksum(fin, &fin->fin_ip->ip_sum, nat->nat_ipsumd);
else
--- 4113,4119 ----
* fast forwarding (so that it doesn't need to be recomputed) but with
* header checksum offloading, perhaps it is a moot point.
*/
! #if 1
if (nat->nat_dir == NAT_OUTBOUND)
fix_incksum(fin, &fin->fin_ip->ip_sum, nat->nat_ipsumd);
else