/src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::createNameChangeRequests() - modified to check for
reused lease
/src/bin/dhcp4/tests/dora_unittest.cc
DORATest::leaseCaching() - modified to verify suppression of NCRs
/src/bin/dhcp6/dhcp6_srv.cc
Dhcpv6Srv::createNameChangeRequests() - modified to iteralte over
IA contexts rather than IA options in response and to check for
reused leases
/src/bin/dhcp6/tests/fqdn_unittest.cc
Updated tests to populate IAContexts
/src/bin/dhcp6/tests/sarr_unittest.cc
SARRTest::leaseCaching()- modified to verify suppression of NCRs
/src/lib/dhcpsrv/alloc_engine.*
AllocEngine::ClientContext6::IAContext - added reused_leases_ container
AllocEngine::ClientContext6::getIAContexts() - new function
The solution is based on clusterfuzzlite, libfuzzer, and oss-fuzz
technologies.
- Add the .clusterfuzzlite directory.
- Add the fuzz CI stage and fuzzing CI jobs.
- Add the fuzzing targets in the fuzz directory.
- Document fuzzing in doxygen.
- Separate ENABLE_AFL into ENABLE_FUZZING and HAVE_AFL.
- Add the --disable-unicode flag required in the oss-fuzz container.
- Add checking of support for C++17.
- Make Kea compile with afl++.
- Rotate ports in `getServerPort()` functions under an env var.
- Fix some destruction issues that would result in crashes when fuzzing.
- Add some checks in the UnixControlClient that prevent some crashes when fuzzing.
- Add `isc::util::isSocket()` function.
- Change `isc::util::file::Path` to not append a trailing slash to allow
chained calls of `parentPath()`.
- Add `isc::util::file::TemporaryDirectory` useful when fuzzing.
/src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::appendServerID() - modified to use the standard
option defintion when appending a generated server id.
Dhcpv4Srv::appendRequestedOptions()
Dhcpv4Srv::appendRequestedVendorOptions()
Dhcpv4Srv::appendBasicOptions()
- modified to OptionDescriptor::allowedForClientClasses()
/src/bin/dhcp4/tests/classify_unittest.cc
TEST_F(ClassifyTest, requestedOptionClassTagTest)
TEST_F(ClassifyTest, vendorOptionClassTagTest)
TEST_F(ClassifyTest, vivcoOptionClassTagTest)
TEST_F(ClassifyTest, vivsoOptionClassTagTest)
TEST_F(ClassifyTest, basicOptionClassTagTest)
- new tests
/src/bin/dhcp4/tests/dhcp4_srv_unittest.cc
TEST_F(Dhcpv4SrvTest, appendServerID) - updated test
/src/bin/dhcp4/tests/dhcp4_test_utils.*
Dhcpv4SrvTest::checkServerIdentifier() - new function
/src/lib/dhcpsrv/cfg_option.*
OptionDescriptor::allowedForClientClasses() - new function
/src/lib/dhcpsrv/tests/cfg_option_unittest.cc
TEST(OptionDescriptorTest, allowedForClientClassesTest) - new test
- Split the 15 occurrences of EVAL_RESULT into one message for each log call in code.
- Log all these messages only on debug level 50.
- Remove bad practice `catch (...)` and the message logged on that if-branch.
Added ChangeLog entry
src/bin/dhcp4/dhcp4_srv.cc
DHCP4_PACKET_RECEIVED and DHCP4_PACKET_SEND moved to INFO
src/bin/dhcp6/dhcp6_srv.cc
DHCP6_PACKET_RECEIVED and DHCP6_PACKET_SEND moved to INFO
- replace VERSION with PACKAGE_VERSION in src/bin/admin to avoid
overlap with VERSION used in src/share/database.
- add -V to kea-admin
- add -V to kea-shell
- add -V to keactrl
- add -V to perfdhcp
- removed getVersionAddendum from d2 and added the openssl version to
the output of other process versions since it's not only used by d2
- make all -V outputs consistent. Some are showing only core version and
are missing premium version which is fine since they are the
executables that don't have something to do with premium directly
anyway.