Previous commit, 55207601c7a71e7db55d8fff2b451b054a7b315e, included
changes in the dhcp6/tests directory which should not have been included.
These have been removed.
The NO_HR enum value was erroneously set to an explicit
value, causing the wrong text to be used for some tests.
Changed reserved host name in config to avoid causing
NCR remove/adds during renewals.
[2615] v4 clients may now release out-of-range leases
Modified v4 server to not enforce subnet match when clients attempt
to release an existing, but out-of-range lease.
Added a battery of unit tests to verify proper v4 server behavior
when clients attempt to renew or release out-of-range addresses.
src/bin/dhcp4/dhcp4_messages.mes
- deleted DHCP4_RELEAE_FILE_NO SUBNET as it is now obsolete
src/bin/dhcp4/dhcp4_srv.cc
- Dhcpv4Srv::processRelease() - removed the check to make sure the
release pertains to a configured subnet. This allows clients to
release leases after configuration changes rendered them out of
range.
src/bin/dhcp4/tests/out_of_range_unittest.cc
- New file containing DHCPv4 tests for server behavior regarding
renews and releases of "out of range" addresses.
src/bin/dhcp4/tests/release_unittest.cc
- TEST_F(ReleaseTest, releaseNoSubnet) - modified the test to
verify that a client CAN release an out-of-range lease
Tomek Mrugalski [Tue, 18 Aug 2015 12:08:00 +0000 (14:08 +0200)]
[support8785] Likely fix for the issues with "no child processes" exception
This fix makes the signal handler no longer modify errno value.
That was causing "no child processes" exceptions in places that
had nothing to do with signals or processes.
Tomek Mrugalski [Mon, 17 Aug 2015 19:33:53 +0000 (21:33 +0200)]
[support8785] Verbose Exception::what() has been implemented.
This change by itself does nothing, but it allows changing
e.what() to e.what(true) to get more details about an exception.
This can be useful for exception debugging.
Tomek Mrugalski [Mon, 17 Aug 2015 18:49:39 +0000 (20:49 +0200)]
[support8785] std::exception, not just isc::Exception is caught
If std::exception would be thrown anywhere in message processing
in Dhcp4Srv::run(), we would not catch it. In principle, that
should never happen, as the Kea code only throws isc::Exception
derivatives, but maybe some of the system or boost calls could
throw std::exception.
Tomek Mrugalski [Mon, 17 Aug 2015 18:21:00 +0000 (20:21 +0200)]
[support8785] ISC and std exceptions in handleSignal() are now caught
The calls to handleSignal() are now wrapped with catch clauses
for both ISC and standard exceptions. This would not solve the
underlying issue, but at least would cause the server to continue
after the issue occurs.
Tomek Mrugalski [Thu, 20 Aug 2015 12:56:26 +0000 (14:56 +0200)]
[support8785] Select interruption by signal is now logged.
One of the hypotheses for the #8785 issue is mis-handling of
the SingalInterruptOnSelect exception. This message will
be printed every time a signal is received during select().
[3997] Corrected DHCP6 server crash on exit when DDNS is enabled
Rather that stopping it explicitly, the server was relying D2ClientMgr
to stop itself during its own destruction. This was falling over during
process wind-down because the IfaceMgr singletone was being destroyed before
the D2ClientMgr instance. The server destructor now explicitly stops the
D2ClientMgr.
[3997] Corrected DHCP4 server crash on exit when DDNS is enabled
Rather that stopping it explicitly, the server was relying D2ClientMgr
to stop itself during its own destruction. This was falling over during
process wind-down because the IfaceMgr singletone was being destroyed before
the D2ClientMgr instance.
The server destructor now explicitly stops the D2ClientMgr.
Marcin Siodelski [Thu, 30 Jul 2015 12:49:21 +0000 (14:49 +0200)]
[3947] Removed the new-leases-on-renew config parameter.
This change removes ability to disable allocation new leases new
Renew/Rebind, specified in RFC7550. The behavior specified in this
RFC is the only supported behavior.
Added required input config report file parameter to
mk_cfgrpt.sh rather than having hard-coded by configure.
This allows cfgrpt/Makefile to pass in the pathname of
the report file it used in its "config_report.cc", as
the input report file. In other words, we garuantee that
the file we used for change is the same file we generate
the source from.
[3929] config_report.cc is now generated during src/lib/cfgrpt/Makefile
By generating config_report.cc in the cfgrpt directory Makefile
rather than configure, it can be treated as any other generated
source file, rather than a one-off special case.
Moved cfgrpt directory from bin to lib since it creates a library
rather than an executable.
mk_cfgrpt.sh is now generated by configure from a .in file and
Details:
configure.ac
removed call to mk_cfgrpts.sh
added mk_cfgprt.sh to list of files generated by configure
src/lib/cfgrpt/Makefile.am
changed include dir to be in lib not dir
added config_report.cc to CLEANFILES
added config_report.cc to BUILD_SOURCES
removed config_report.cc from libcfgrpt_la_SOURCES
added rule for config_report.cc to call mk_cfgrpt.sh