Subject: Re: kern/28418
To: None <gnats-bugs@netbsd.org>
From: Darren Reed <darrenr@NetBSD.org>
List: netbsd-bugs
Date: 07/18/2005 21:11:11
Christos,

Can you please back out the earlier change you made to fix this problem
and try the patch below ?

THanks,
Darren

Index: fil.c
===================================================================
RCS file: /devel/CVS/IP-Filter/fil.c,v
retrieving revision 2.243.2.62
diff -c -r2.243.2.62 fil.c
*** fil.c	16 Jun 2005 22:36:05 -0000	2.243.2.62
--- fil.c	9 Jul 2005 08:24:01 -0000
***************
*** 1933,1940 ****
  			if (fin->fin_flx & FI_DONTCACHE)
  				logged = 1;
  		}
! 		if (pass & FR_QUICK)
  			break;
  	}
  	if (logged)
  		fin->fin_flx |= FI_DONTCACHE;
--- 1948,1973 ----
  			if (fin->fin_flx & FI_DONTCACHE)
  				logged = 1;
  		}
! 
! 		if (pass & FR_QUICK) {
! 			/*
! 			 * Finally, if we've asked to track state for this
! 			 * packet, set it up.
! 			 */
! 			if ((pass & FR_KEEPSTATE) &&
! 			    !(fin->fin_flx & FI_STATE)) {
! 				int out = fin->fin_out;
! 
! 				if (fr_addstate(fin, NULL, 0) != NULL) {
! 					ATOMIC_INCL(frstats[out].fr_ads);
! 				} else {
! 					ATOMIC_INCL(frstats[out].fr_bads);
! 					pass = passo;
! 					continue;
! 				}
! 			}
  			break;
+ 		}
  	}
  	if (logged)
  		fin->fin_flx |= FI_DONTCACHE;