From c73c00658fad5e1c36c17ce66a12eea1c350fd1e Mon Sep 17 00:00:00 2001 From: Vadim Kurland Date: Wed, 10 Feb 2010 22:10:44 +0000 Subject: [PATCH] * PolicyCompiler_ipt.cpp (specialCaseWithFWInDstAndOutbound::processNext): fixes #1220 "bridging fw rule using all multicast object in destination does not produce any iptables rules". --- build_num | 2 +- doc/ChangeLog | 6 + src/iptlib/PolicyCompiler_ipt.cpp | 4 +- test/ipt/objects-for-regression-tests.fwb | 169 ++++++++++++++++------ 4 files changed, 133 insertions(+), 48 deletions(-) diff --git a/build_num b/build_num index 5610775a9..97d57d217 100644 --- a/build_num +++ b/build_num @@ -1 +1 @@ -#define BUILD_NUM 2505 +#define BUILD_NUM 2508 diff --git a/doc/ChangeLog b/doc/ChangeLog index ad2944ea4..523110c67 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,9 @@ +2010-02-10 vadim + + * PolicyCompiler_ipt.cpp (specialCaseWithFWInDstAndOutbound::processNext): + fixes #1220 "bridging fw rule using all multicast object in + destination does not produce any iptables rules". + 2010-02-07 vadim * src/gui/ClusterGroupDialog.cpp (ClusterGroupDialog::applyChanges): diff --git a/src/iptlib/PolicyCompiler_ipt.cpp b/src/iptlib/PolicyCompiler_ipt.cpp index 8da106ea8..d4635efed 100644 --- a/src/iptlib/PolicyCompiler_ipt.cpp +++ b/src/iptlib/PolicyCompiler_ipt.cpp @@ -2568,7 +2568,9 @@ bool PolicyCompiler_ipt::specialCaseWithFWInDstAndOutbound::processNext() // non-empty interface is legit FWOptions *fwopt = compiler->getCachedFwOpt(); const InetAddr *dst_addr = dst->getAddressPtr(); - if (dst_addr && dst_addr->isBroadcast() && fwopt->getBool("bridging_fw")) + if (dst_addr && + (dst_addr->isBroadcast() || dst_addr->isMulticast()) && + fwopt->getBool("bridging_fw")) { tmp_queue.push_back(rule); return true; diff --git a/test/ipt/objects-for-regression-tests.fwb b/test/ipt/objects-for-regression-tests.fwb index 4408b09c3..88cb8a830 100644 --- a/test/ipt/objects-for-regression-tests.fwb +++ b/test/ipt/objects-for-regression-tests.fwb @@ -1,6 +1,6 @@ - + @@ -1756,6 +1756,12 @@ + + + + + + @@ -24936,7 +24942,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -24952,8 +24958,8 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - + + @@ -24971,8 +24977,8 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - + + @@ -24990,8 +24996,8 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - + + @@ -25009,8 +25015,8 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - + + @@ -25028,8 +25034,8 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - + + @@ -25047,8 +25053,8 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - + + @@ -25066,8 +25072,8 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - + + @@ -25085,8 +25091,8 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - + + @@ -25104,8 +25110,8 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - + + @@ -25123,8 +25129,8 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - + + @@ -25133,7 +25139,67 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25144,7 +25210,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25161,7 +25227,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25172,7 +25238,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25189,7 +25255,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25200,7 +25266,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25217,7 +25283,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25235,7 +25301,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25254,7 +25320,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25273,7 +25339,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25291,7 +25357,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25309,7 +25375,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25329,7 +25395,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25347,7 +25413,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25365,7 +25431,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -25383,9 +25449,9 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + - + @@ -25406,19 +25472,30 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - - - - - - - + + + + + + + + + + + + + + + + + +