]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2077] Corrected an issue in MySQL CB (v6)
authorMarcin Siodelski <marcin@isc.org>
Thu, 16 Sep 2021 15:41:02 +0000 (17:41 +0200)
committerMarcin Siodelski <marcin@isc.org>
Fri, 17 Sep 2021 09:23:45 +0000 (11:23 +0200)
DHCPv6 client classes failed to evaluate during insertion to the database.

src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc

index cf29082b31b7a36944214b7e9d7bbfd9ff370a03..54b10b2f869913cfc1724a4cb9ef570e5d41e4c7 100644 (file)
@@ -3047,7 +3047,7 @@ public:
             // KNOWN/UNKNOWN built-ins. The callback always returns true to avoid
             // reporting the parsing error. The dependency check is performed later
             // at the database level.
-            parser.parse(expression, Element::create(client_class->getTest()), AF_INET,
+            parser.parse(expression, Element::create(client_class->getTest()), AF_INET6,
                          [&dependencies, &depend_on_known](const ClientClass& client_class) -> bool {
                 if (isClientClassBuiltIn(client_class)) {
                     if ((client_class == "KNOWN") || (client_class == "UNKNOWN")) {
index 2e23ed8395267bd40464546cf3b8af70e2cb9dca..6685659be1eb554be757c7fb3f0778600d2e02f7 100644 (file)
@@ -4169,6 +4169,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, setAndGetAllClientClasses4) {
     }
     // Create first class.
     auto class1 = test_client_classes_[0];
+    class1->setTest("pkt4.msgtype == 1");
     ASSERT_NO_THROW(cbptr_->createUpdateClientClass4(ServerSelector::ALL(), class1, ""));
     {
         SCOPED_TRACE("client class foo is created");
index 2fc311446a9f444480d24b3733323ccb9a71adb2..30e3824781ea129cd1a8ce788f080257cc2eb009 100644 (file)
@@ -4340,6 +4340,7 @@ TEST_F(MySqlConfigBackendDHCPv6Test, setAndGetAllClientClasses6) {
     }
     // Create first class.
     auto class1 = test_client_classes_[0];
+    class1->setTest("pkt6.msgtype == 1");
     ASSERT_NO_THROW_LOG(cbptr_->createUpdateClientClass6(ServerSelector::ALL(), class1, ""));
     {
         SCOPED_TRACE("client class foo is created");