From: Michal 'vorner' Vaner Date: Mon, 4 Jul 2011 14:16:03 +0000 (+0200) Subject: [trac981] Register the creators X-Git-Tag: perftcpdns_before_epoll~263^2~1^2~1^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ea2a4f906dc3b5bae939a0348a5f82fa690bbec5;p=thirdparty%2Fkea.git [trac981] Register the creators --- diff --git a/src/lib/acl/dns.cc b/src/lib/acl/dns.cc index 16f1bf5dcb..4dae297f50 100644 --- a/src/lib/acl/dns.cc +++ b/src/lib/acl/dns.cc @@ -13,6 +13,9 @@ // PERFORMANCE OF THIS SOFTWARE. #include "dns.h" +#include "logic_check.h" + +using boost::shared_ptr; namespace isc { namespace acl { @@ -22,9 +25,19 @@ Loader& getLoader() { static Loader* loader(NULL); if (loader == NULL) { + // TODO: + // There's some trick with auto_ptr in the branch when IP check + // is added here. That one is better, bring it in on merge. loader = new Loader(REJECT); - // TODO: This is the place where we register default check creators - // like IP check, etc, once we have them. + loader->registerCreator( + shared_ptr >( + new NotCreator("NOT"))); + loader->registerCreator( + shared_ptr >( + new LogicCreator("ANY"))); + loader->registerCreator( + shared_ptr >( + new LogicCreator("ALL"))); } return (*loader); } diff --git a/src/lib/acl/tests/dns_test.cc b/src/lib/acl/tests/dns_test.cc index e5e0f3a18a..b2f967843e 100644 --- a/src/lib/acl/tests/dns_test.cc +++ b/src/lib/acl/tests/dns_test.cc @@ -32,4 +32,24 @@ TEST(DNSACL, getLoader) { // check, are loaded. } +// The following tests test only the creators are registered, they are tested +// elsewhere + +// TODO: Enable the tests when we merge the IP check branch here (is it called +// "from" in the branch?) +TEST(DNSACL, DISABLED_notLoad) { + EXPECT_NO_THROW(getLoader().loadCheck(isc::data::Element::fromJSON( + "{\"NOT\": {\"from\": \"192.0.2.1\"}}"))); +} + +TEST(DNSACL, DISABLED_allLoad) { + EXPECT_NO_THROW(getLoader().loadCheck(isc::data::Element::fromJSON( + "{\"ALL\": [{\"from\": \"192.0.2.1\"}]}"))); +} + +TEST(DNSACL, DISABLED_anyLoad) { + EXPECT_NO_THROW(getLoader().loadCheck(isc::data::Element::fromJSON( + "{\"ANY\": [{\"from\": \"192.0.2.1\"}]}"))); +} + }