]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1333] Added match expr check
authorFrancis Dupont <fdupont@isc.org>
Wed, 22 Jul 2020 16:11:43 +0000 (18:11 +0200)
committerFrancis Dupont <fdupont@isc.org>
Fri, 18 Sep 2020 14:26:46 +0000 (16:26 +0200)
src/bin/dhcp4/dhcp4_srv.cc
src/bin/dhcp6/dhcp6_srv.cc

index 744833e13cfd81cff1b839eaee8ae7f5e3e0e917..13c363160d531849220362c673edb0dcfe6f655f 100644 (file)
@@ -221,7 +221,9 @@ Dhcpv4Exchange::Dhcpv4Exchange(const AllocEnginePtr& alloc_engine,
             CfgMgr::instance().getCurrentCfg()->getClientClassDictionary();
         const ClientClassDefListPtr& defs_ptr = dict->getClasses();
         for (auto def : *defs_ptr) {
-            context_->query_->classes_.erase(def->getName());
+            if (def->getMatchExpr()) {
+                context_->query_->classes_.erase(def->getName());
+            }
         }
         setReservedClientClasses(context_);
         evaluateClasses(context_->query_, false);
index 95629d6fb66f109c32c2ead1d370f80d09aaadd8..bf80801b49a1e34348aa3d615cdf9e3d3cc38bc0 100644 (file)
@@ -471,7 +471,9 @@ Dhcpv6Srv::initContext(const Pkt6Ptr& pkt,
             CfgMgr::instance().getCurrentCfg()->getClientClassDictionary();
         const ClientClassDefListPtr& defs_ptr = dict->getClasses();
         for (auto def : *defs_ptr) {
-            ctx.query_->classes_.erase(def->getName());
+            if (def->getMatchExpr()) {
+                ctx.query_->classes_.erase(def->getName());
+            }
         }
         setReservedClientClasses(pkt, ctx);
         evaluateClasses(pkt,  false);