changeset 3:4b038451e1a4

6277084 accounting rules are not loaded into the correct ruleset
author dr146992
date Tue, 14 Jun 2005 11:53:13 -0700
parents b9db0344fa5f
children 43465ac6e40e
files usr/src/common/ipf/fil.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/common/ipf/fil.c	Tue Jun 14 09:46:36 2005 -0700
+++ b/usr/src/common/ipf/fil.c	Tue Jun 14 11:53:13 2005 -0700
@@ -5,7 +5,7 @@
  */
 
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -3869,6 +3869,10 @@
 	group = fp->fr_group;
 	if (!strcmp(group, "0"))
 		*group = '\0';
+
+	if (FR_ISACCOUNT(fp->fr_flags))
+		unit = IPL_LOGCOUNT;
+
 	if ((req != (int)SIOCZRLST) && (*group != '\0')) {
 		fg = fr_findgroup(group, unit, set, NULL);
 		if (fg == NULL)
@@ -3891,12 +3895,12 @@
 	else if (v == 4) {
 		if (FR_ISACCOUNT(fp->fr_flags))
 			fprev = &ipacct[in][set];
-		if ((fp->fr_flags & (FR_OUTQUE|FR_INQUE)) != 0)
+		else if ((fp->fr_flags & (FR_OUTQUE|FR_INQUE)) != 0)
 			fprev = &ipfilter[in][set];
 	} else if (v == 6) {
 		if (FR_ISACCOUNT(fp->fr_flags))
 			fprev = &ipacct6[in][set];
-		if ((fp->fr_flags & (FR_OUTQUE|FR_INQUE)) != 0)
+		else if ((fp->fr_flags & (FR_OUTQUE|FR_INQUE)) != 0)
 			fprev = &ipfilter6[in][set];
 	}
 	if (fprev == NULL)