socsvn commit: r269433 - soc2014/dpl/netmap-ipfw/sys/netpfil/ipfw
dpl at FreeBSD.org
dpl at FreeBSD.org
Thu Jun 12 09:06:06 UTC 2014
Author: dpl
Date: Thu Jun 12 09:06:05 2014
New Revision: 269433
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=269433
Log:
Added rule_deny().
Modified:
soc2014/dpl/netmap-ipfw/sys/netpfil/ipfw/ip_fw2.c
soc2014/dpl/netmap-ipfw/sys/netpfil/ipfw/ip_rules.h
Modified: soc2014/dpl/netmap-ipfw/sys/netpfil/ipfw/ip_fw2.c
==============================================================================
--- soc2014/dpl/netmap-ipfw/sys/netpfil/ipfw/ip_fw2.c Thu Jun 12 08:47:17 2014 (r269432)
+++ soc2014/dpl/netmap-ipfw/sys/netpfil/ipfw/ip_fw2.c Thu Jun 12 09:06:05 2014 (r269433)
@@ -1711,26 +1711,7 @@
break;
case O_SKIPTO:
- IPFW_INC_RULE_COUNTER(f, pktlen);
- f_pos = jump_fast(chain, f, cmd->arg1, tablearg, 0);
- /*
- * Skip disabled rules, and re-enter
- * the inner loop with the correct
- * f_pos, f, l and cmd.
- * Also clear cmdlen and skip_or
- */
- for (; f_pos < chain->n_rules - 1 &&
- (V_set_disable &
- (1 << chain->map[f_pos]->set));
- f_pos++)
- ;
- /* Re-enter the inner loop at the skipto rule. */
- f = chain->map[f_pos];
- l = f->cmd_len;
- cmd = f->cmd;
- match = 1;
- cmdlen = 0;
- skip_or = 0;
+ rule_skipto(&match, &l, &cmd, &skip_or, &f_pos, f, pktlen, chain, cmd, tablearg);
continue;
break; /* not reached */
@@ -1862,9 +1843,7 @@
/* FALLTHROUGH */
#endif
case O_DENY:
- retval = IP_FW_DENY;
- l = 0; /* exit inner loop */
- done = 1; /* exit outer loop */
+ rule_deny(&l, &done, &retval);
break;
case O_FORWARD_IP:
Modified: soc2014/dpl/netmap-ipfw/sys/netpfil/ipfw/ip_rules.h
==============================================================================
--- soc2014/dpl/netmap-ipfw/sys/netpfil/ipfw/ip_rules.h Thu Jun 12 08:47:17 2014 (r269432)
+++ soc2014/dpl/netmap-ipfw/sys/netpfil/ipfw/ip_rules.h Thu Jun 12 09:06:05 2014 (r269433)
@@ -959,6 +959,9 @@
inline void
rule_deny(int *l, int *done, int *retval)
{
+ *retval = IP_FW_DENY;
+ *l = 0; /* exit inner loop */
+ *done = 1; /* exit outer loop */
}
inline void
More information about the svn-soc-all
mailing list