From f6e1886d4f839825fb046b3da30a687fd2f38472 Mon Sep 17 00:00:00 2001 From: Vadim Kurland Date: Wed, 13 Jan 2010 21:21:07 +0000 Subject: [PATCH] * PolicyCompiler_PrintRuleIptRst.cpp (PrintRuleIptRst::_printRuleLabel): really fixed #869 "compile rule" should also print the comment. Printing rule comment in the compiler output in the single rule compile mode when firewall object is configured to use iptables-restore. Code that prints rule label and comment has been unified for compilers for all firewall platforms. --- build_num | 2 +- doc/ChangeLog | 9 + src/cisco_lib/CompilerDriver_iosacl_run.cpp | 2 +- src/cisco_lib/CompilerDriver_pix_run.cpp | 2 +- src/cisco_lib/NATCompiler_pix_writers.cpp | 27 +- .../PolicyCompiler_iosacl_writers.cpp | 27 +- src/cisco_lib/PolicyCompiler_pix_writers.cpp | 5 +- src/iptlib/NATCompiler_PrintRule.cpp | 22 +- src/iptlib/NATCompiler_PrintRuleIptRst.cpp | 27 +- src/iptlib/PolicyCompiler_PrintRule.cpp | 16 +- src/iptlib/PolicyCompiler_PrintRuleIptRst.cpp | 27 +- src/iptlib/RoutingCompiler_ipt_writers.cpp | 1 + src/pflib/CompilerDriver_ipf_run.cpp | 20 +- src/pflib/CompilerDriver_ipfw_run.cpp | 2 +- src/pflib/CompilerDriver_pf_run.cpp | 26 +- src/pflib/NATCompiler_ipf_writers.cpp | 26 +- src/pflib/NATCompiler_pf_writers.cpp | 29 +- src/pflib/PolicyCompiler_ipf_writers.cpp | 29 +- src/pflib/PolicyCompiler_ipfw_writers.cpp | 27 +- src/pflib/PolicyCompiler_pf_writers.cpp | 34 +- test/ipf/objects-for-regression-tests.fwb | 1456 +++++++++-------- test/ipf/quick-cmp.sh | 2 +- test/ipfw/quick-cmp.sh | 2 +- test/ipt/cluster-tests.fwb | 918 ++++++----- test/ipt/objects-for-regression-tests.fwb | 4 +- test/pix/objects-for-regression-tests.fwb | 43 +- 26 files changed, 1468 insertions(+), 1317 deletions(-) diff --git a/build_num b/build_num index 525ed1a1a..2649ca888 100644 --- a/build_num +++ b/build_num @@ -1 +1 @@ -#define BUILD_NUM 2340 +#define BUILD_NUM 2341 diff --git a/doc/ChangeLog b/doc/ChangeLog index dd6363ea1..3a054b2e9 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,12 @@ +2010-01-13 vadim + + * PolicyCompiler_PrintRuleIptRst.cpp (PrintRuleIptRst::_printRuleLabel): + really fixed #869 '"compile rule" should also print the comment'. + Printing rule comment in the compiler output in the single rule + compile mode when firewall object is configured to use + iptables-restore. Code that prints rule label and comment has been + unified for compilers for all firewall platforms. + 2010-01-12 vadim * TCPServiceDialog.cpp (TCPServiceDialog::applyChanges): fixed bug diff --git a/src/cisco_lib/CompilerDriver_iosacl_run.cpp b/src/cisco_lib/CompilerDriver_iosacl_run.cpp index 53eb8addb..b23e669b1 100644 --- a/src/cisco_lib/CompilerDriver_iosacl_run.cpp +++ b/src/cisco_lib/CompilerDriver_iosacl_run.cpp @@ -311,7 +311,7 @@ string CompilerDriver_iosacl::run(const std::string &cluster_id, if (single_rule_compile_on) { - return all_errors.join("\n").toStdString() + + return //all_errors.join("\n").toStdString() + policy_script + routing_script; } diff --git a/src/cisco_lib/CompilerDriver_pix_run.cpp b/src/cisco_lib/CompilerDriver_pix_run.cpp index bf0455a14..c6f944f5b 100644 --- a/src/cisco_lib/CompilerDriver_pix_run.cpp +++ b/src/cisco_lib/CompilerDriver_pix_run.cpp @@ -620,7 +620,7 @@ string CompilerDriver_pix::run(const std::string &cluster_id, if (single_rule_compile_on) { - return all_errors.join("\n").toStdString() + + return //all_errors.join("\n").toStdString() + policy_script + nat_script + routing_script; } diff --git a/src/cisco_lib/NATCompiler_pix_writers.cpp b/src/cisco_lib/NATCompiler_pix_writers.cpp index 913920bc7..3246d5978 100644 --- a/src/cisco_lib/NATCompiler_pix_writers.cpp +++ b/src/cisco_lib/NATCompiler_pix_writers.cpp @@ -300,31 +300,12 @@ bool NATCompiler_pix::PrintRule::processNext() NATRule *rule=getNext(); if (rule==NULL) return false; tmp_queue.push_back(rule); - if ( compiler->fw->getOptionsObject()->getBool("pix_include_comments") && - !compiler->inSingleRuleCompileMode()) - { - string rl=rule->getLabel(); - if (rl!=current_rule_label) - { - compiler->output << "! " << endl; - compiler->output << "! Rule " << rl << endl; + bool suppress_comments = ! compiler->fw->getOptionsObject()->getBool("pix_include_comments"); - string comm=rule->getComment(); - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) { - compiler->output << "! " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; - } - compiler->output << "! " << comm.substr(c1) << endl; - compiler->output << "! " << endl; + compiler->output << compiler->printComment(rule, current_rule_label, "!", suppress_comments); - current_rule_label=rl; - } - } - - string err = rule->getStr(".error_msg"); - if (!err.empty()) compiler->output << "! " << err << endl; + // string err = rule->getStr(".error_msg"); + // if (!err.empty()) compiler->output << "! " << err << endl; Address *osrc=compiler->getFirstOSrc(rule); assert(osrc); Address *odst=compiler->getFirstODst(rule); assert(odst); diff --git a/src/cisco_lib/PolicyCompiler_iosacl_writers.cpp b/src/cisco_lib/PolicyCompiler_iosacl_writers.cpp index e3d8bd2b8..22bc40871 100644 --- a/src/cisco_lib/PolicyCompiler_iosacl_writers.cpp +++ b/src/cisco_lib/PolicyCompiler_iosacl_writers.cpp @@ -200,31 +200,10 @@ string PolicyCompiler_iosacl::PrintRule::_printRule(PolicyRule *rule) ostringstream ruleout; ostringstream aclstr; - string rl=rule->getLabel(); + compiler->output << compiler->printComment(rule, current_rule_label1, "!"); - if (write_comments && !compiler->inSingleRuleCompileMode()) - { - if (rl!=current_rule_label1) - { - ruleout << "! " << endl; - ruleout << "! Rule " << rl << endl; - - string comm=rule->getComment(); - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) { - ruleout << "! " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; - } - ruleout << "! " << comm.substr(c1) << endl; - ruleout << "! " << endl; - - current_rule_label1=rl; - } - } - - string err = rule->getStr(".error_msg"); - if (!err.empty()) ruleout << "! " << err << endl; + // string err = rule->getStr(".error_msg"); + // if (!err.empty()) ruleout << "! " << err << endl; /* * all three rule elements contain exactly one object, which can diff --git a/src/cisco_lib/PolicyCompiler_pix_writers.cpp b/src/cisco_lib/PolicyCompiler_pix_writers.cpp index 25bc73144..61183143d 100644 --- a/src/cisco_lib/PolicyCompiler_pix_writers.cpp +++ b/src/cisco_lib/PolicyCompiler_pix_writers.cpp @@ -560,8 +560,10 @@ bool PolicyCompiler_pix::PrintRule::processNext() ostringstream comment; - string rl=rule->getLabel(); + compiler->output << compiler->printComment(rule, current_rule_label1, "!"); +#if 0 + string rl=rule->getLabel(); if (write_comments && !compiler->inSingleRuleCompileMode()) { if (rl!=current_rule_label1) @@ -586,6 +588,7 @@ bool PolicyCompiler_pix::PrintRule::processNext() string err = rule->getStr(".error_msg"); if (!err.empty()) compiler->output << "! " << err << endl; +#endif if (rule->getBool("icmp_cmd")) { diff --git a/src/iptlib/NATCompiler_PrintRule.cpp b/src/iptlib/NATCompiler_PrintRule.cpp index b2f3d668a..79b28e215 100644 --- a/src/iptlib/NATCompiler_PrintRule.cpp +++ b/src/iptlib/NATCompiler_PrintRule.cpp @@ -60,6 +60,8 @@ #include +#include + using namespace libfwbuilder; using namespace fwcompiler; using namespace std; @@ -156,10 +158,11 @@ string NATCompiler_ipt::PrintRule::_printRuleLabel(NATRule *rule) bool nocomm = Resources::os_res[compiler->fw->getStr("host_OS")]->Resources::getResourceBool("/FWBuilderResources/Target/options/suppress_comments"); + // TODO: convert this into virtual function NATCompiler_ipt::printComment() string rl=rule->getLabel(); - if (!compiler->inSingleRuleCompileMode() && rl != current_rule_label) + if (rl != current_rule_label) { - if (!nocomm) + if (!compiler->inSingleRuleCompileMode() && !nocomm) { res << "# " << endl; res << "# Rule " << rl << endl; @@ -169,17 +172,14 @@ string NATCompiler_ipt::PrintRule::_printRuleLabel(NATRule *rule) res << "# " << endl; /* do not put comment in the script if it is intended for linksys */ - if (!nocomm) + if (!nocomm || compiler->inSingleRuleCompileMode()) { - string comm=rule->getComment(); - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) { - res << "# " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; + QStringList comm = QString(rule->getComment().c_str()).split("\n", QString::SkipEmptyParts); + foreach(QString line, comm) + { + res << "# " << line.toStdString() << endl; } - res << "# " << comm.substr(c1) << endl; -// res << "# " << endl; + //res << "# " << endl; } current_rule_label=rl; } diff --git a/src/iptlib/NATCompiler_PrintRuleIptRst.cpp b/src/iptlib/NATCompiler_PrintRuleIptRst.cpp index c809a9a99..5fde7582e 100644 --- a/src/iptlib/NATCompiler_PrintRuleIptRst.cpp +++ b/src/iptlib/NATCompiler_PrintRuleIptRst.cpp @@ -43,6 +43,8 @@ #include +#include + using namespace libfwbuilder; using namespace fwcompiler; using namespace std; @@ -83,17 +85,18 @@ string NATCompiler_ipt::PrintRuleIptRst::_endRuleLine() string NATCompiler_ipt::PrintRuleIptRst::_printRuleLabel(NATRule *rule) { - ostringstream res; - bool nocomm = Resources::os_res[compiler->fw->getStr("host_OS")]->Resources::getResourceBool("/FWBuilderResources/Target/options/suppress_comments"); - if (compiler->inSingleRuleCompileMode()) return ""; + return compiler->printComment(rule, current_rule_label, "#", nocomm); + +#if 0 + ostringstream res; string rl=rule->getLabel(); if (rl!=current_rule_label) { - if (!nocomm) + if (!compiler->inSingleRuleCompileMode() && !nocomm) { res << "# " << endl; res << "# Rule " << rl << endl; @@ -101,20 +104,20 @@ string NATCompiler_ipt::PrintRuleIptRst::_printRuleLabel(NATRule *rule) } /* do not put comment in the script if it is intended for linksys */ - if (!nocomm) + if (!nocomm || compiler->inSingleRuleCompileMode()) { - string comm=rule->getComment(); - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) { - res << "# " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; + QStringList comm = QString(rule->getComment().c_str()).split("\n"); + foreach(QString line, comm) + { + res << "# " << line.toStdString() << endl; } - res << "# " << comm.substr(c1) << endl; + //res << "# " << endl; } current_rule_label=rl; } + return res.str(); +#endif } bool NATCompiler_ipt::PrintRuleIptRst::processNext() diff --git a/src/iptlib/PolicyCompiler_PrintRule.cpp b/src/iptlib/PolicyCompiler_PrintRule.cpp index 8bdf58506..76ff699ba 100644 --- a/src/iptlib/PolicyCompiler_PrintRule.cpp +++ b/src/iptlib/PolicyCompiler_PrintRule.cpp @@ -166,6 +166,7 @@ string PolicyCompiler_ipt::PrintRule::_printRuleLabel(PolicyRule *rule) Resources::getResourceBool( "/FWBuilderResources/Target/options/suppress_comments"); + // TODO: convert this into virtual function PolicyCompiler_ipt::printComment() string rl=rule->getLabel(); if (rl != current_rule_label) { @@ -184,19 +185,12 @@ string PolicyCompiler_ipt::PrintRule::_printRuleLabel(PolicyRule *rule) /* do not put comment in the script if it is intended for linksys */ if (!nocomm || compiler->inSingleRuleCompileMode()) { - string comm = rule->getComment(); - if (!comm.empty()) + QStringList comm = QString(rule->getComment().c_str()).split("\n", QString::SkipEmptyParts); + foreach(QString line, comm) { - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) - { - res << "# " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; - } - res << "# " << comm.substr(c1) << endl; - res << "# " << endl; + res << "# " << line.toStdString() << endl; } + //res << "# " << endl; } } diff --git a/src/iptlib/PolicyCompiler_PrintRuleIptRst.cpp b/src/iptlib/PolicyCompiler_PrintRuleIptRst.cpp index 45fe64b62..32da45650 100644 --- a/src/iptlib/PolicyCompiler_PrintRuleIptRst.cpp +++ b/src/iptlib/PolicyCompiler_PrintRuleIptRst.cpp @@ -43,6 +43,8 @@ #include +#include + using namespace libfwbuilder; using namespace fwcompiler; using namespace std; @@ -84,17 +86,18 @@ string PolicyCompiler_ipt::PrintRuleIptRst::_endRuleLine() string PolicyCompiler_ipt::PrintRuleIptRst::_printRuleLabel(PolicyRule *rule) { - ostringstream res; - bool nocomm = Resources::os_res[compiler->fw->getStr("host_OS")]->Resources::getResourceBool("/FWBuilderResources/Target/options/suppress_comments"); - if (compiler->inSingleRuleCompileMode()) return ""; + return compiler->printComment(rule, current_rule_label, "#", nocomm); + +#if 0 + ostringstream res; string rl=rule->getLabel(); if (rl!=current_rule_label) { - if (!nocomm) + if (!compiler->inSingleRuleCompileMode() && !nocomm) { res << "# " << endl; res << "# Rule " << rl << endl; @@ -102,21 +105,19 @@ string PolicyCompiler_ipt::PrintRuleIptRst::_printRuleLabel(PolicyRule *rule) } /* do not put comment in the script if it is intended for linksys */ - if (!nocomm) + if (!nocomm || compiler->inSingleRuleCompileMode()) { - string comm=rule->getComment(); - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) { - res << "# " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; + QStringList comm = QString(rule->getComment().c_str()).split("\n"); + foreach(QString line, comm) + { + res << "# " << line.toStdString() << endl; } - res << "# " << comm.substr(c1) << endl; - res << "# " << endl; + //res << "# " << endl; } current_rule_label=rl; } return res.str(); +#endif } bool PolicyCompiler_ipt::PrintRuleIptRst::processNext() diff --git a/src/iptlib/RoutingCompiler_ipt_writers.cpp b/src/iptlib/RoutingCompiler_ipt_writers.cpp index 883738bee..01ded41c2 100644 --- a/src/iptlib/RoutingCompiler_ipt_writers.cpp +++ b/src/iptlib/RoutingCompiler_ipt_writers.cpp @@ -162,6 +162,7 @@ bool RoutingCompiler_ipt::PrintRule::processNext() print_once_on_top = false; } + // TODO: convert this into virtual function RoutingCompiler_ipt::printComment() string rl = rule->getLabel(); string comm = rule->getComment(); string::size_type c1,c2; diff --git a/src/pflib/CompilerDriver_ipf_run.cpp b/src/pflib/CompilerDriver_ipf_run.cpp index 02a88a323..67b4d6a60 100644 --- a/src/pflib/CompilerDriver_ipf_run.cpp +++ b/src/pflib/CompilerDriver_ipf_run.cpp @@ -313,7 +313,7 @@ string CompilerDriver_ipf::run(const std::string &cluster_id, } return - all_errors.join("\n").toStdString() + + //all_errors.join("\n").toStdString() + ostr.str(); } @@ -340,9 +340,12 @@ string CompilerDriver_ipf::run(const std::string &cluster_id, if (c.haveErrorsAndWarnings()) { all_errors.push_back(c.getErrors("").c_str()); - ipf_str << "# Policy compiler errors and warnings:" - << endl; - ipf_str << c.getErrors("# "); + if (!single_rule_compile_on) + { + ipf_str << "# Policy compiler errors and warnings:" + << endl; + ipf_str << c.getErrors("# "); + } } ipf_str << c.getCompiledScript(); ipf_file.close(); @@ -388,9 +391,12 @@ string CompilerDriver_ipf::run(const std::string &cluster_id, if (n.haveErrorsAndWarnings()) { all_errors.push_back(n.getErrors("").c_str()); - nat_str << "# NAT compiler errors and warnings:" - << endl; - nat_str << n.getErrors("# "); + if (!single_rule_compile_on) + { + nat_str << "# NAT compiler errors and warnings:" + << endl; + nat_str << n.getErrors("# "); + } } nat_str << n.getCompiledScript(); nat_file.close(); diff --git a/src/pflib/CompilerDriver_ipfw_run.cpp b/src/pflib/CompilerDriver_ipfw_run.cpp index 4cc19b576..a1eb2074e 100644 --- a/src/pflib/CompilerDriver_ipfw_run.cpp +++ b/src/pflib/CompilerDriver_ipfw_run.cpp @@ -294,7 +294,7 @@ string CompilerDriver_ipfw::run(const std::string &cluster_id, if (single_rule_compile_on) { return - all_errors.join("\n").toStdString() + + //all_errors.join("\n").toStdString() + generated_script; } diff --git a/src/pflib/CompilerDriver_pf_run.cpp b/src/pflib/CompilerDriver_pf_run.cpp index 315cf5d05..5be7e3e66 100644 --- a/src/pflib/CompilerDriver_pf_run.cpp +++ b/src/pflib/CompilerDriver_pf_run.cpp @@ -386,10 +386,13 @@ string CompilerDriver_pf::run(const std::string &cluster_id, // store errors and warnings so they will appear on top // of .fw file in addition to the .conf file all_errors.push_back(n.getErrors("").c_str()); - *(generated_scripts[ruleset_name]) - << "# NAT compiler errors and warnings:" - << endl; - *(generated_scripts[ruleset_name]) << n.getErrors("# "); + if (!single_rule_compile_on) + { + *(generated_scripts[ruleset_name]) + << "# NAT compiler errors and warnings:" + << endl; + *(generated_scripts[ruleset_name]) << n.getErrors("# "); + } } *(generated_scripts[ruleset_name]) << n.getCompiledScript(); *(generated_scripts[ruleset_name]) << endl; @@ -474,10 +477,13 @@ string CompilerDriver_pf::run(const std::string &cluster_id, if (c.haveErrorsAndWarnings()) { all_errors.push_back(c.getErrors("").c_str()); - *(generated_scripts[ruleset_name]) - << "# Policy compiler errors and warnings:" - << endl; - *(generated_scripts[ruleset_name]) << c.getErrors("# "); + if (!single_rule_compile_on) + { + *(generated_scripts[ruleset_name]) + << "# Policy compiler errors and warnings:" + << endl; + *(generated_scripts[ruleset_name]) << c.getErrors("# "); + } } *(generated_scripts[ruleset_name]) << c.getCompiledScript(); *(generated_scripts[ruleset_name]) << endl; @@ -521,9 +527,7 @@ string CompilerDriver_pf::run(const std::string &cluster_id, table_factories.clear(); generated_scripts.clear(); - return - all_errors.join("\n").toStdString() + - buffer.toStdString(); + return buffer.toStdString(); } /* diff --git a/src/pflib/NATCompiler_ipf_writers.cpp b/src/pflib/NATCompiler_ipf_writers.cpp index 5ba3fee46..b897155d4 100644 --- a/src/pflib/NATCompiler_ipf_writers.cpp +++ b/src/pflib/NATCompiler_ipf_writers.cpp @@ -229,30 +229,10 @@ bool NATCompiler_ipf::PrintRule::processNext() tmp_queue.push_back(rule); - if (!compiler->inSingleRuleCompileMode()) - { - string rl=rule->getLabel(); - if (rl!=current_rule_label) { + compiler->output << compiler->printComment(rule, current_rule_label, "#"); - compiler->output << "# " << endl; - compiler->output << "# Rule " << rl << endl; - - string comm=rule->getComment(); - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) { - compiler->output << "# " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; - } - compiler->output << "# " << comm.substr(c1) << endl; - compiler->output << "# " << endl; - - current_rule_label=rl; - } - } - - string err = rule->getStr(".error_msg"); - if (!err.empty()) compiler->output << "# " << err << endl; + // string err = rule->getStr(".error_msg"); + // if (!err.empty()) compiler->output << "# " << err << endl; Address *osrc=compiler->getFirstOSrc(rule); assert(osrc); Address *odst=compiler->getFirstODst(rule); assert(odst); diff --git a/src/pflib/NATCompiler_pf_writers.cpp b/src/pflib/NATCompiler_pf_writers.cpp index 2a12b9c33..e1fd6bb6b 100644 --- a/src/pflib/NATCompiler_pf_writers.cpp +++ b/src/pflib/NATCompiler_pf_writers.cpp @@ -56,6 +56,9 @@ #include +#include + + using namespace libfwbuilder; using namespace fwcompiler; using namespace std; @@ -83,30 +86,10 @@ bool NATCompiler_pf::PrintRule::processNext() string version = compiler->fw->getStr("version"); - if (!compiler->inSingleRuleCompileMode()) - { - string rl=rule->getLabel(); - if (rl!=current_rule_label) { + compiler->output << compiler->printComment(rule, current_rule_label, "#"); - compiler->output << "# " << endl; - compiler->output << "# Rule " << rl << endl; - - string comm=rule->getComment(); - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) { - compiler->output << "# " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; - } - compiler->output << "# " << comm.substr(c1) << endl; - compiler->output << "# " << endl; - - current_rule_label=rl; - } - } - - string err = rule->getStr(".error_msg"); - if (!err.empty()) compiler->output << "# " << err << endl; + // string err = rule->getStr(".error_msg"); + // if (!err.empty()) compiler->output << "# " << err << endl; RuleElementOSrc *osrcrel=rule->getOSrc(); RuleElementODst *odstrel=rule->getODst(); diff --git a/src/pflib/PolicyCompiler_ipf_writers.cpp b/src/pflib/PolicyCompiler_ipf_writers.cpp index 57618d0f2..156a38733 100644 --- a/src/pflib/PolicyCompiler_ipf_writers.cpp +++ b/src/pflib/PolicyCompiler_ipf_writers.cpp @@ -53,6 +53,9 @@ #include +#include + + using namespace libfwbuilder; using namespace fwcompiler; using namespace std; @@ -327,30 +330,10 @@ bool PolicyCompiler_ipf::PrintRule::processNext() tmp_queue.push_back(rule); - if (!compiler->inSingleRuleCompileMode()) - { - string rl=rule->getLabel(); - if (rl!=current_rule_label) - { - compiler->output << "# " << endl; - compiler->output << "# Rule " << rl << endl; + compiler->output << compiler->printComment(rule, current_rule_label, "#"); - string comm=rule->getComment(); - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) { - compiler->output << "# " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; - } - compiler->output << "# " << comm.substr(c1) << endl; - compiler->output << "# " << endl; - - current_rule_label=rl; - } - } - - string err = rule->getStr(".error_msg"); - if (!err.empty()) compiler->output << "# " << err << endl; + // string err = rule->getStr(".error_msg"); + // if (!err.empty()) compiler->output << "# " << err << endl; RuleElementSrc *srcrel=rule->getSrc(); Address *src =compiler->getFirstSrc(rule); assert(src); diff --git a/src/pflib/PolicyCompiler_ipfw_writers.cpp b/src/pflib/PolicyCompiler_ipfw_writers.cpp index 00c235f36..31ae3a22b 100644 --- a/src/pflib/PolicyCompiler_ipfw_writers.cpp +++ b/src/pflib/PolicyCompiler_ipfw_writers.cpp @@ -528,31 +528,10 @@ bool PolicyCompiler_ipfw::PrintRule::processNext() string quote = "\""; - if (!compiler->inSingleRuleCompileMode()) - { - string rl=rule->getLabel(); - if (rl!=current_rule_label) - { - compiler->output << "# " << endl; - compiler->output << "# Rule " << rl << endl; + compiler->output << compiler->printComment(rule, current_rule_label, "#"); - string comm=rule->getComment(); - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) - { - compiler->output << "# " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; - } - compiler->output << "# " << comm.substr(c1) << endl; - compiler->output << "# " << endl; - - current_rule_label=rl; - } - } - - string err = rule->getStr(".error_msg"); - if (!err.empty()) compiler->output << "# " << err << endl; + // string err = rule->getStr(".error_msg"); + // if (!err.empty()) compiler->output << "# " << err << endl; RuleElementSrc *srcrel=rule->getSrc(); Address *src =compiler->getFirstSrc(rule); assert(src); diff --git a/src/pflib/PolicyCompiler_pf_writers.cpp b/src/pflib/PolicyCompiler_pf_writers.cpp index dc8a6985b..4a59ca993 100644 --- a/src/pflib/PolicyCompiler_pf_writers.cpp +++ b/src/pflib/PolicyCompiler_pf_writers.cpp @@ -60,6 +60,9 @@ #include +#include + + using namespace libfwbuilder; using namespace fwcompiler; using namespace std; @@ -919,37 +922,12 @@ bool PolicyCompiler_pf::PrintRule::processNext() FWOptions *ruleopt =rule->getOptionsObject(); string version=compiler->fw->getStr("version"); -// cerr << endl; -// cerr << "Rule " << rule->getPosition() << endl; - tmp_queue.push_back(rule); - if (!compiler->inSingleRuleCompileMode()) - { - string rl = rule->getLabel(); - if (rl!=current_rule_label) - { - - compiler->output << "# " << endl; - compiler->output << "# Rule " << rl << endl; + compiler->output << compiler->printComment(rule, current_rule_label, "#"); - string comm = rule->getComment(); - string::size_type c1,c2; - c1=0; - while ( (c2=comm.find('\n',c1))!=string::npos ) - { - compiler->output << "# " << comm.substr(c1,c2-c1) << endl; - c1=c2+1; - } - compiler->output << "# " << comm.substr(c1) << endl; - compiler->output << "# " << endl; - - current_rule_label=rl; - } - } - - string err = rule->getStr(".error_msg"); - if (!err.empty()) compiler->output << "# " << err << endl; + // string err = rule->getStr(".error_msg"); + // if (!err.empty()) compiler->output << "# " << err << endl; RuleElementSrc *srcrel=rule->getSrc(); // Address *src =compiler->getFirstSrc(rule); assert(src); diff --git a/test/ipf/objects-for-regression-tests.fwb b/test/ipf/objects-for-regression-tests.fwb index 070b5e48b..cb734a08a 100644 --- a/test/ipf/objects-for-regression-tests.fwb +++ b/test/ipf/objects-for-regression-tests.fwb @@ -114,7 +114,7 @@ - + @@ -123,7 +123,7 @@ - + @@ -133,15 +133,15 @@ - + + - + @@ -151,14 +151,14 @@ - + + - + @@ -168,15 +168,15 @@ - + + - + @@ -186,15 +186,15 @@ - + + - + @@ -208,7 +208,7 @@ - + @@ -217,7 +217,7 @@ - + @@ -232,7 +232,7 @@ - + @@ -243,14 +243,14 @@ - + + - + @@ -264,7 +264,7 @@ - + @@ -278,7 +278,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -301,7 +301,7 @@ - + @@ -310,7 +310,7 @@ - + @@ -320,15 +320,15 @@ - + + - + @@ -338,15 +338,15 @@ - + + - + @@ -356,15 +356,15 @@ - + + - + @@ -374,15 +374,15 @@ - + + - + @@ -392,15 +392,15 @@ - + + - + @@ -410,15 +410,15 @@ - + + - + @@ -428,15 +428,15 @@ - + + - + @@ -445,7 +445,7 @@ - + @@ -459,7 +459,7 @@ - + @@ -473,7 +473,7 @@ - + @@ -484,14 +484,14 @@ - + + - + @@ -505,7 +505,7 @@ - + @@ -519,7 +519,7 @@ - + @@ -533,7 +533,7 @@ - + @@ -547,7 +547,7 @@ - + @@ -561,7 +561,7 @@ - + @@ -575,7 +575,7 @@ - + @@ -589,7 +589,7 @@ - + @@ -599,9 +599,9 @@ - + + @@ -703,17 +703,17 @@ - - + + -m ip_conntrack_talk -m ip_nat_talk - + - + @@ -820,11 +820,10 @@ - + - - + @@ -840,7 +839,8 @@ - + + @@ -859,7 +859,8 @@ - + + @@ -879,7 +880,8 @@ - + + @@ -896,7 +898,8 @@ - + + @@ -910,7 +913,8 @@ - + + @@ -926,7 +930,8 @@ - + + @@ -945,13 +950,14 @@ - - + - + + @@ -971,12 +977,13 @@ - - + + @@ -995,7 +1002,8 @@ - + + @@ -1012,12 +1020,13 @@ - + - - + + @@ -1034,12 +1043,13 @@ - + - - + + @@ -1059,12 +1069,13 @@ - + - - + + @@ -1081,12 +1092,13 @@ - + - - + + @@ -1104,12 +1116,13 @@ - + - - + + @@ -1127,12 +1140,13 @@ - + - - + + @@ -1150,12 +1164,13 @@ - + - - + + @@ -1173,12 +1188,13 @@ - + - - + + @@ -1195,7 +1211,8 @@ - + + @@ -1214,7 +1231,8 @@ - + + @@ -1235,7 +1253,8 @@ - + + @@ -1253,12 +1272,13 @@ - + - - + + @@ -1275,30 +1295,32 @@ - - - + - - + + + + + - - + - + - + @@ -1311,30 +1333,30 @@ - + + - - + - + + - + + @@ -1362,7 +1384,7 @@ - @@ -1377,17 +1399,17 @@ - - + + - + + + @@ -1667,11 +1689,10 @@ - + - - + @@ -1687,7 +1708,8 @@ - + + @@ -1706,7 +1728,8 @@ - + + @@ -1723,7 +1746,8 @@ - + + @@ -1739,7 +1763,8 @@ - + + @@ -1756,7 +1781,8 @@ - + + @@ -1775,7 +1801,8 @@ - + + @@ -1794,7 +1821,8 @@ - + + @@ -1811,7 +1839,8 @@ - + + @@ -1829,13 +1858,14 @@ - - - + + @@ -1855,7 +1885,8 @@ - + + @@ -1875,7 +1906,8 @@ - + + @@ -1896,7 +1928,8 @@ - + + @@ -1915,7 +1948,8 @@ - + + @@ -1936,7 +1970,8 @@ - + + @@ -1955,7 +1990,8 @@ - + + @@ -1974,7 +2010,8 @@ - + + @@ -1991,7 +2028,8 @@ - + + @@ -2010,27 +2048,29 @@ - - + + + + + - - + - + - + - + - + @@ -2043,34 +2083,34 @@ - + + - + - + - + + - + + - + @@ -2094,29 +2134,29 @@ - - - - - + - + + + @@ -2143,7 +2183,7 @@ - @@ -2167,7 +2207,7 @@ - @@ -2426,7 +2466,7 @@ - @@ -2640,11 +2680,10 @@ - + - - + @@ -2659,13 +2698,14 @@ - + - + + @@ -2680,13 +2720,14 @@ - + - + + @@ -2703,10 +2744,11 @@ - - + + @@ -2726,12 +2768,13 @@ - - + + @@ -2748,15 +2791,16 @@ - - - + + @@ -2774,7 +2818,8 @@ - + + @@ -2792,7 +2837,8 @@ - + + @@ -2809,9 +2855,10 @@ - - + + @@ -2828,7 +2875,8 @@ - + + @@ -2845,7 +2893,8 @@ - + + @@ -2862,30 +2911,32 @@ - - - + + + + + - - + - + - + - + - + @@ -2900,26 +2951,26 @@ - + - - + + + - + + - + @@ -2955,10 +3006,10 @@ - + + + @@ -2985,7 +3036,7 @@ - @@ -3008,7 +3059,7 @@ - @@ -3031,7 +3082,7 @@ - @@ -3054,7 +3105,7 @@ - @@ -3077,7 +3128,7 @@ - @@ -3209,11 +3260,10 @@ - + - - + @@ -3230,7 +3280,8 @@ - + + @@ -3247,7 +3298,8 @@ - + + @@ -3263,7 +3315,8 @@ - + + @@ -3279,7 +3332,8 @@ - + + @@ -3296,9 +3350,10 @@ - - + + @@ -3316,10 +3371,11 @@ - - + + @@ -3337,10 +3393,11 @@ - - + + @@ -3359,10 +3416,11 @@ - - + + @@ -3379,9 +3437,10 @@ - - + + @@ -3399,7 +3458,8 @@ - + + @@ -3416,30 +3476,32 @@ - - - + + + + + - - + - + - + - + - + @@ -3452,34 +3514,34 @@ - + + - + - + - + - + + - + @@ -3500,35 +3562,35 @@ - - - - - + + + + - + + - - + @@ -3547,7 +3609,8 @@ - + + @@ -3566,7 +3629,8 @@ - + + @@ -3583,27 +3647,29 @@ - - + + + + + - - + - + - + - + - + @@ -3618,24 +3684,24 @@ - + - - + + - + + - + @@ -3652,7 +3718,7 @@ - @@ -3662,20 +3728,20 @@ - + + + - + + - - + @@ -3689,7 +3755,8 @@ - + + @@ -3703,7 +3770,8 @@ - + + @@ -3717,7 +3785,8 @@ - + + @@ -3731,7 +3800,8 @@ - + + @@ -3750,7 +3820,8 @@ - + + @@ -3772,7 +3843,8 @@ - + + @@ -3789,7 +3861,8 @@ - + + @@ -3808,15 +3881,17 @@ - - + + + + + - - + - + @@ -3831,23 +3906,23 @@ - + - - + + - + + - + @@ -3862,9 +3937,9 @@ - - @@ -3873,10 +3948,10 @@ - + + + @@ -4072,11 +4147,10 @@ - + - - + @@ -4093,7 +4167,8 @@ - + + @@ -4110,7 +4185,8 @@ - + + @@ -4127,7 +4203,8 @@ - + + @@ -4144,7 +4221,8 @@ - + + @@ -4163,24 +4241,26 @@ - - + + + + + - - + - + - + - + @@ -4191,20 +4271,20 @@ - + - + + - + @@ -4212,9 +4292,9 @@ - + + @@ -4429,11 +4509,10 @@ - + - - + @@ -4452,7 +4531,8 @@ - + + @@ -4470,7 +4550,8 @@ - + + @@ -4488,7 +4569,8 @@ - + + @@ -4507,7 +4589,8 @@ - + + @@ -4526,7 +4609,8 @@ - + + @@ -4543,7 +4627,8 @@ - + + @@ -4560,7 +4645,8 @@ - + + @@ -4579,19 +4665,21 @@ - - + + + + + - - + - + - + @@ -4603,20 +4691,20 @@ - + - + + - + @@ -4626,17 +4714,17 @@ - + + - + + - - + @@ -4655,7 +4743,8 @@ - + + @@ -4682,7 +4771,8 @@ - + + @@ -4700,7 +4790,8 @@ - + + @@ -4729,7 +4820,8 @@ - + + @@ -4754,7 +4846,8 @@ - + + @@ -4780,7 +4873,8 @@ - + + @@ -4806,7 +4900,8 @@ - + + @@ -4825,23 +4920,25 @@ - - + + + + + - - + - + - + - + @@ -4854,21 +4951,21 @@ - + - + + - + @@ -4879,9 +4976,9 @@ - + + @@ -4907,11 +5004,10 @@ - + - - + @@ -4928,7 +5024,8 @@ - + + @@ -4945,7 +5042,8 @@ - + + @@ -4962,24 +5060,26 @@ - - + + + + + - - + - + - + - + - + @@ -4992,21 +5092,21 @@ - + - + + - + @@ -5019,9 +5119,9 @@ - + + @@ -5215,11 +5315,10 @@ - + - - + @@ -5236,7 +5335,8 @@ - + + @@ -5253,7 +5353,8 @@ - + + @@ -5270,7 +5371,8 @@ - + + @@ -5287,7 +5389,8 @@ - + + @@ -5304,7 +5407,8 @@ - + + @@ -5323,24 +5427,26 @@ - - + + + + + - - + - + - + - + @@ -5351,27 +5457,27 @@ - + + - + - - + + - + @@ -5380,15 +5486,15 @@ - - - + + + @@ -5479,11 +5585,10 @@ - + - - + @@ -5500,7 +5605,8 @@ - + + @@ -5517,7 +5623,8 @@ - + + @@ -5534,7 +5641,8 @@ - + + @@ -5551,7 +5659,8 @@ - + + @@ -5570,7 +5679,8 @@ - + + @@ -5589,7 +5699,8 @@ - + + @@ -5606,7 +5717,8 @@ - + + @@ -5623,7 +5735,8 @@ - + + @@ -5641,7 +5754,8 @@ - + + @@ -5659,7 +5773,8 @@ - + + @@ -5677,7 +5792,8 @@ - + + @@ -5696,18 +5812,20 @@ - - + + + + + - - + - + - + @@ -5720,50 +5838,50 @@ - + + - + - + - + + - + + + + + + + + + + + + + + + - + + + @@ -5777,20 +5895,20 @@ - - - - + + + + @@ -5845,11 +5963,10 @@ - + - - + @@ -5866,7 +5983,8 @@ - + + @@ -5885,7 +6003,8 @@ - + + @@ -5904,7 +6023,8 @@ - + + @@ -5924,7 +6044,8 @@ - + + @@ -5943,7 +6064,8 @@ - + + @@ -5963,7 +6085,8 @@ - + + @@ -5981,7 +6104,8 @@ - + + @@ -5998,7 +6122,8 @@ - + + @@ -6015,7 +6140,8 @@ - + + @@ -6034,18 +6160,20 @@ - - + + + + + - - + - + - + @@ -6058,50 +6186,50 @@ - + + - + - + - + + - + + + + + + + + + + + + + + + - + + + @@ -6115,20 +6243,20 @@ - - - - + + + + @@ -6351,11 +6479,10 @@ - + - - + @@ -6372,17 +6499,18 @@ - + - - - + + @@ -6399,17 +6527,18 @@ - + - - - + + @@ -6426,7 +6555,8 @@ - + + @@ -6445,19 +6575,21 @@ - - + + + + + - - + - + - + @@ -6469,20 +6601,20 @@ - + - + + - + @@ -6492,9 +6624,9 @@ - + + diff --git a/test/ipf/quick-cmp.sh b/test/ipf/quick-cmp.sh index d5e3cb86b..c13485845 100755 --- a/test/ipf/quick-cmp.sh +++ b/test/ipf/quick-cmp.sh @@ -7,6 +7,6 @@ for f in $(ls *.fw.orig *.conf.orig) do V="$f <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" echo "echo \"$V\" | cut -c1-72" - new_f=$(echo $f | sed 's/.org//') + new_f=$(echo $f | sed 's/.orig//') echo "$DIFFCMD $f $new_f" done diff --git a/test/ipfw/quick-cmp.sh b/test/ipfw/quick-cmp.sh index d4f939c2a..3d4d4c6a3 100755 --- a/test/ipfw/quick-cmp.sh +++ b/test/ipfw/quick-cmp.sh @@ -7,7 +7,7 @@ for f in $(ls *.fw.orig) do V="$f <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" echo "echo \"$V\" | cut -c1-72" - new_f=$(echo $f | sed 's/.org//') + new_f=$(echo $f | sed 's/.orig//') echo "$DIFFCMD $f $new_f" done exit 0 diff --git a/test/ipt/cluster-tests.fwb b/test/ipt/cluster-tests.fwb index fe12bea14..38e3c1de1 100644 --- a/test/ipt/cluster-tests.fwb +++ b/test/ipt/cluster-tests.fwb @@ -8,7 +8,7 @@ - @@ -20,46 +20,46 @@ - + - - - + - - - + - + - + - + - + @@ -68,31 +68,31 @@ - + - - + - - + @@ -113,7 +113,7 @@ - + @@ -134,7 +134,7 @@ - + @@ -155,7 +155,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -197,7 +197,7 @@ - + @@ -218,9 +218,8 @@ - - - + + @@ -241,7 +240,8 @@ - + + @@ -260,7 +260,8 @@ - + + @@ -279,7 +280,8 @@ - + + @@ -298,7 +300,8 @@ - + + @@ -317,11 +320,13 @@ - - - - - + + + + + + + @@ -338,7 +343,7 @@ - + @@ -359,25 +364,26 @@ - - - + + + - - - - - + + + + + + - + - + @@ -388,18 +394,18 @@ - + + - + - @@ -408,11 +414,11 @@ - - @@ -432,7 +438,7 @@ - @@ -472,25 +478,26 @@ - + + - - - + + + - - - - - + + + + + + - + @@ -501,18 +508,18 @@ - + + - + - @@ -521,11 +528,11 @@ - - @@ -545,7 +552,7 @@ - @@ -585,21 +592,22 @@ - + + - - - + + + - - - - - + + + + + + @@ -611,7 +619,7 @@ - + @@ -623,7 +631,7 @@ - + @@ -646,7 +654,7 @@ - + @@ -656,7 +664,7 @@ - + @@ -677,11 +685,10 @@ - + - - + @@ -699,7 +706,8 @@ - + + @@ -716,7 +724,8 @@ - + + @@ -733,7 +742,8 @@ - + + @@ -750,7 +760,8 @@ - + + @@ -767,7 +778,8 @@ - + + @@ -784,7 +796,8 @@ - + + @@ -801,11 +814,13 @@ - - + + + + + - - + @@ -820,7 +835,7 @@ - + @@ -831,7 +846,7 @@ - + @@ -846,15 +861,16 @@ - + + - - - + + + + - - + @@ -865,7 +881,7 @@ - + @@ -884,7 +900,7 @@ - + @@ -905,11 +921,10 @@ - + - - + @@ -928,7 +943,8 @@ - + + @@ -946,7 +962,8 @@ - + + @@ -963,7 +980,8 @@ - + + @@ -980,7 +998,8 @@ - + + @@ -997,7 +1016,8 @@ - + + @@ -1014,7 +1034,8 @@ - + + @@ -1043,19 +1064,20 @@ - - - - + - + + @@ -1072,7 +1094,8 @@ - + + @@ -1089,7 +1112,8 @@ - + + @@ -1108,7 +1132,9 @@ - + + + @@ -1134,10 +1160,9 @@ - + - - + @@ -1152,7 +1177,7 @@ - + @@ -1170,9 +1195,9 @@ - + - + @@ -1193,11 +1218,10 @@ - + - - + @@ -1216,7 +1240,8 @@ - + + @@ -1234,7 +1259,8 @@ - + + @@ -1251,7 +1277,8 @@ - + + @@ -1268,7 +1295,8 @@ - + + @@ -1285,7 +1313,8 @@ - + + @@ -1302,7 +1331,8 @@ - + + @@ -1319,12 +1349,12 @@ - - - @@ -1335,38 +1365,104 @@ - - - + - + - - - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1395,19 +1491,20 @@ - - - - + - + + @@ -1424,7 +1521,8 @@ - + + @@ -1441,7 +1539,8 @@ - + + @@ -1460,9 +1559,12 @@ - + + + - + + @@ -1476,10 +1578,9 @@ - + - - + @@ -1497,7 +1598,7 @@ - + @@ -1512,7 +1613,7 @@ - @@ -1525,7 +1626,7 @@ - + @@ -1546,11 +1647,10 @@ - + - - + @@ -1569,7 +1669,8 @@ - + + @@ -1587,7 +1688,8 @@ - + + @@ -1604,7 +1706,8 @@ - + + @@ -1621,7 +1724,8 @@ - + + @@ -1638,7 +1742,8 @@ - + + @@ -1655,7 +1760,8 @@ - + + @@ -1684,19 +1790,20 @@ - - - - + - + + @@ -1713,7 +1820,8 @@ - + + @@ -1730,7 +1838,8 @@ - + + @@ -1749,11 +1858,13 @@ - - + + + + + - - + @@ -1767,7 +1878,7 @@ - + @@ -1781,7 +1892,7 @@ - + @@ -1796,7 +1907,7 @@ - + @@ -1817,11 +1928,10 @@ - + - - + @@ -1840,7 +1950,8 @@ - + + @@ -1858,7 +1969,8 @@ - + + @@ -1875,7 +1987,8 @@ - + + @@ -1892,7 +2005,8 @@ - + + @@ -1909,7 +2023,8 @@ - + + @@ -1926,7 +2041,8 @@ - + + @@ -1955,19 +2071,20 @@ - - - - + - + + @@ -1996,19 +2113,20 @@ - - - - + - + + @@ -2025,7 +2143,8 @@ - + + @@ -2042,7 +2161,8 @@ - + + @@ -2061,7 +2181,9 @@ - + + + @@ -2087,10 +2209,9 @@ - + - - + @@ -2110,7 +2231,7 @@ - + @@ -2166,13 +2287,14 @@ - + + - - + + - + @@ -2201,29 +2323,31 @@ - - - + - - + + + + + - - + - + @@ -2235,14 +2359,14 @@ - + - + @@ -2254,30 +2378,30 @@ - + + + - + - - - @@ -2292,11 +2416,11 @@ - - @@ -2314,13 +2438,13 @@ - + - @@ -2331,13 +2455,14 @@ - + + - - + + - + @@ -2366,31 +2491,33 @@ - - - + - - + + + + + - - + - + - + @@ -2402,29 +2529,29 @@ - + + + - + - - - @@ -2439,11 +2566,11 @@ - - @@ -2461,13 +2588,13 @@ - + - @@ -2478,33 +2605,34 @@ - + + - - - + + + + - - + - + - - - + @@ -2519,28 +2647,28 @@ - + + + - + - - @@ -2555,11 +2683,11 @@ - - @@ -2577,13 +2705,13 @@ - + - @@ -2594,52 +2722,53 @@ - + + - - - + + + + - - + - + - + - + - - - + - + @@ -2654,28 +2783,28 @@ - + + + - + - - @@ -2690,11 +2819,11 @@ - - @@ -2712,13 +2841,13 @@ - + - @@ -2729,21 +2858,22 @@ - + + - - - + + + + - - + - + @@ -2754,7 +2884,7 @@ - + @@ -2766,7 +2896,7 @@ - + @@ -2776,11 +2906,11 @@ - + - + @@ -2792,16 +2922,16 @@ - + + + - + @@ -2809,14 +2939,14 @@ - - @@ -2831,11 +2961,11 @@ - - @@ -2853,13 +2983,13 @@ - + - @@ -2870,11 +3000,11 @@ - + + - - + @@ -2893,17 +3023,19 @@ - - + + + + + - - + - + @@ -2915,12 +3047,12 @@ - + - @@ -2931,7 +3063,7 @@ - + @@ -2942,33 +3074,33 @@ - + - + - + - - + - + - + @@ -2981,16 +3113,16 @@ - + + + - + @@ -2998,14 +3130,14 @@ - - @@ -3020,11 +3152,11 @@ - - @@ -3042,13 +3174,13 @@ - + - diff --git a/test/ipt/objects-for-regression-tests.fwb b/test/ipt/objects-for-regression-tests.fwb index 49ee100cb..ca329649d 100644 --- a/test/ipt/objects-for-regression-tests.fwb +++ b/test/ipt/objects-for-regression-tests.fwb @@ -24166,7 +24166,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -24302,7 +24302,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + diff --git a/test/pix/objects-for-regression-tests.fwb b/test/pix/objects-for-regression-tests.fwb index 43534539b..b4e0f558e 100644 --- a/test/pix/objects-for-regression-tests.fwb +++ b/test/pix/objects-for-regression-tests.fwb @@ -892,7 +892,7 @@ - + @@ -1174,7 +1174,27 @@ - + + + + + + + + + + + + + + + + + + + + + @@ -1194,23 +1214,6 @@ - - - - - - - - - - - - - - - - - @@ -14640,8 +14643,8 @@ no sysopt nodnsalias outbound - +