From: Marcin Siodelski Date: Thu, 16 Sep 2021 15:41:02 +0000 (+0200) Subject: [#2077] Corrected an issue in MySQL CB (v6) X-Git-Tag: Kea-2.0.0~121 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5d04c7553d175e8e85745d11543c2edbe7fb4f16;p=thirdparty%2Fkea.git [#2077] Corrected an issue in MySQL CB (v6) DHCPv6 client classes failed to evaluate during insertion to the database. --- diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc index cf29082b31..54b10b2f86 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc @@ -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")) { diff --git a/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc b/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc index 2e23ed8395..6685659be1 100644 --- a/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc +++ b/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc @@ -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"); diff --git a/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc b/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc index 2fc311446a..30e3824781 100644 --- a/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc +++ b/src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc @@ -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");