K 10 svn:author V 5 luigi K 8 svn:date V 27 2010-01-04T16:03:26.343522Z K 7 svn:log V 843 The main purpose of this commit is to fix 'divert', 'diverted' and operation with one_pass=0 which was not completed in the previous commits (in this branch). In detail: === ip_fw_private.h === + introduce enum constants to define the input and output info in struct ipfw_rule_ref, so the same format can be used by different clients. + remember to rename the file, as it exports kernel APIs, not private stuff; === ip_fw_pfil.c === + put the conversion of ip+len and ip_off in the right place (was not correct for reinjected packets); + optimize the path for net.inet.ip.fw.onepass=1 === ip_fw2.c === + complete the implementation of 'diverted' + localize a variable; === ip_divert.c === + use MTAG_IPFW_RULE tags for divert; + extract the rule and divert port directly from the tag; + store the return info in the 'info' field; END