1934. [func] tmark
Kea-dhcp6 now supports specifying valid-lifetime and
- preferred-lifetime values in client classes. Prior to this
+ preferred-lifetime values in client classes (via both
+ configuration file and Config Backend). Prior to this
it could only be specified at the global, shared-network,
and subnet scopes.
(Gitlab #1710)
+-----------------------------+----------------------------+-----------+-----------+-----------+-----------+------------+
| interface-id | n/a | n/a | yes | yes | n/a | n/a |
+-----------------------------+----------------------------+-----------+-----------+-----------+-----------+------------+
+ | max-preferred-lifetime | yes | yes | yes | yes | n/a | n/a |
+ +-----------------------------+----------------------------+-----------+-----------+-----------+-----------+------------+
| max-valid-lifetime | yes | yes | yes | yes | n/a | n/a |
+-----------------------------+----------------------------+-----------+-----------+-----------+-----------+------------+
+ | min-preferred-lifetime | yes | yes | yes | yes | n/a | n/a |
+ +-----------------------------+----------------------------+-----------+-----------+-----------+-----------+------------+
| min-valid-lifetime | yes | yes | yes | yes | n/a | n/a |
+-----------------------------+----------------------------+-----------+-----------+-----------+-----------+------------+
| option-data | yes (via | yes | yes | yes | yes | yes |
| option-def | yes (via | yes | n/a | n/a | n/a | n/a |
| | remote-option-def6-set) | | | | | |
+-----------------------------+----------------------------+-----------+-----------+-----------+-----------+------------+
- | preferred-lifetime | yes | n/a | yes | yes | n/a | n/a |
+ | preferred-lifetime | yes | yes | yes | yes | n/a | n/a |
+-----------------------------+----------------------------+-----------+-----------+-----------+-----------+------------+
| prefix | n/a | n/a | n/a | n/a | n/a | yes |
+-----------------------------+----------------------------+-----------+-----------+-----------+-----------+------------+
CfgMgr::instance().getCurrentCfg()->getClientClassDictionary();
// Iterate over the assigned class defintions.
- int cnt = 0;
- for (ClientClasses::const_iterator name = classes.cbegin();
- name != classes.cend() && cnt < 2; ++name) {
+ int have_both = 0;
+ for (auto name = classes.cbegin();
+ name != classes.cend() && have_both < 2; ++name) {
ClientClassDefPtr cl = dict->findClass(*name);
if (candidate_preferred.unspecified() &&
(cl && (!cl->getPreferred().unspecified()))) {
candidate_preferred = cl->getPreferred();
- ++cnt;
+ ++have_both;
}
if (candidate_valid.unspecified() &&
(cl && (!cl->getValid().unspecified()))) {
candidate_valid = cl->getValid();
- ++cnt;
+ ++have_both;
}
}
}