Author: glebius
Date: Thu Sep 16 15:11:17 2010
New Revision: 212738
URL: http://svn.freebsd.org/changeset/base/212738

Log:
  MFhead r210537:
    Fix operation of "netgraph" action in conjunction with the
    net.inet.ip.fw.one_pass sysctl.
  
    PR:           kern/148885
    Submitted by: Nickolay Dudorov <nnd mail.nsk.ru>

Modified:
  stable/8/sys/netgraph/ng_ipfw.c
  stable/8/sys/netinet/ipfw/ip_fw2.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/netgraph/ng_ipfw.c
==============================================================================
--- stable/8/sys/netgraph/ng_ipfw.c     Thu Sep 16 15:07:12 2010        
(r212737)
+++ stable/8/sys/netgraph/ng_ipfw.c     Thu Sep 16 15:11:17 2010        
(r212738)
@@ -287,7 +287,8 @@ ng_ipfw_input(struct mbuf **m0, int dir,
                }
                r = (struct ipfw_rule_ref *)(tag + 1);
                *r = fwa->rule;
-               r->info = dir ? IPFW_INFO_IN : IPFW_INFO_OUT;
+               r->info &= IPFW_ONEPASS;  /* keep this info */
+               r->info |= dir ? IPFW_INFO_IN : IPFW_INFO_OUT;
                m_tag_prepend(m, tag);
 
        } else

Modified: stable/8/sys/netinet/ipfw/ip_fw2.c
==============================================================================
--- stable/8/sys/netinet/ipfw/ip_fw2.c  Thu Sep 16 15:07:12 2010        
(r212737)
+++ stable/8/sys/netinet/ipfw/ip_fw2.c  Thu Sep 16 15:11:17 2010        
(r212738)
@@ -2084,6 +2084,8 @@ do {                                                      
        \
                                set_match(args, f_pos, chain);
                                args->rule.info = (cmd->arg1 == IP_FW_TABLEARG) 
?
                                        tablearg : cmd->arg1;
+                               if (V_fw_one_pass)
+                                       args->rule.info |= IPFW_ONEPASS;
                                retval = (cmd->opcode == O_NETGRAPH) ?
                                    IP_FW_NETGRAPH : IP_FW_NGTEE;
                                l = 0;          /* exit inner loop */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to