From: Marcin Siodelski Date: Thu, 16 Sep 2021 11:58:21 +0000 (+0200) Subject: [#2028] Correct test config backend logic X-Git-Tag: Kea-2.0.0~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8efd34b14a98ed96f71e7eaf64686c794c26fe1;p=thirdparty%2Fkea.git [#2028] Correct test config backend logic --- diff --git a/src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.cc b/src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.cc index 1b3a953a5f..8648d97f29 100644 --- a/src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.cc +++ b/src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.cc @@ -319,17 +319,24 @@ TestConfigBackendDHCPv4::getAllOptionDefs4(const db::ServerSelector& server_sele OptionDefContainer option_defs; for (auto option_def : option_defs_) { bool got = false; - for (auto tag : tags) { - if (option_def->hasServerTag(ServerTag(tag))) { + if (server_selector.amUnassigned()) { + if (option_def->getServerTags().empty()) { option_defs.push_back(option_def); got = true; - break; + } + } else { + for (auto tag : tags) { + if (option_def->hasServerTag(ServerTag(tag))) { + option_defs.push_back(option_def); + got = true; + break; + } } } if (got) { continue; } - if (option_def->hasAllServerTag()) { + if (option_def->hasAllServerTag() && !server_selector.amUnassigned()) { option_defs.push_back(option_def); } } diff --git a/src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.cc b/src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.cc index 3afb48c637..e59ad5dd66 100644 --- a/src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.cc +++ b/src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.cc @@ -318,17 +318,24 @@ TestConfigBackendDHCPv6::getAllOptionDefs6(const db::ServerSelector& server_sele OptionDefContainer option_defs; for (auto option_def : option_defs_) { bool got = false; - for (auto tag : tags) { - if (option_def->hasServerTag(ServerTag(tag))) { + if (server_selector.amUnassigned()) { + if (option_def->getServerTags().empty()) { option_defs.push_back(option_def); got = true; - break; + } + } else { + for (auto tag : tags) { + if (option_def->hasServerTag(ServerTag(tag))) { + option_defs.push_back(option_def); + got = true; + break; + } } } if (got) { continue; } - if (option_def->hasAllServerTag()) { + if (option_def->hasAllServerTag() && !server_selector.amUnassigned()) { option_defs.push_back(option_def); } }