src/lib/dhcpsrv/memfile_lease_mgr.h
src/lib/dhcpsrv/memfile_lease_mgr.cc
- MemfileAddressStatsQuery6 - new class, Memfile derivation of
the IPv6 statistical lease data query
- Memfile_LeaseMgr::startAddressStatsQuery6() - new virtual
method that creates and runs the IPv6 lease stats query
src/lib/dhcpsrv/memfile_lease_storage.h
- Added non-unique index on subnet ID to Lease6Storage
src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
TEST_F(MemfileLeaseMgrTest, recountAddressStats6) - new test
src/lib/dhcpsrv/pgsql_lease_mgr.h
src/lib/dhcpsrv/pgsql_lease_mgr.cc
- Added TaggedStatement RECOUNT_LEASE6_STATS
- PgSqlAddressStatsQuery6 - new class PgSql derivation of the IPv6
statistical lease data query
- PgSqlLeaseMgr::startAddressStatsQuery6() - new virtual method which
creates and runs the IPv6 lease stats query
src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc
TEST_F(PgSqlLeaseMgrTest, recountAddressStats6) - new test
src/lib/dhcpsrv/cfg_subnets6.cc
- CfgSubnets6::removeStatistics() - added removal of declined stats
- CfgSubnets6::updateStatistics() - added call to recountAddressStats6()
src/lib/dhcpsrv/mysql_lease_mgr.h
src/lib/dhcpsrv/mysql_lease_mgr.cc
- Added TaggedStatement RECOUNT_LEASE6_STATS
- MySqlAddressStatsQuery6 - new MySql derivation of AddressStatsQuery6
- MySqlLeaseMgr::startAddressStatsQuery6() - new virtual method which
creates and starts a MySqlAddressStatsQuery6
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc
- GenericLeaseMgrTest::checkAddressStats4 renamed to checkAddressStats as
it applies to either v4 or v6
- GenericLeaseMgrTest::makeLease6() - new method which creates a minimal
IPv6 lease and adds it to lease storage
- GenericLeaseMgrTest::testRecountAddressStats6() - new method which
checks IPv6 lease stats recounting
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
- TEST_F(MySqlLeaseMgrTest, recountAddressStats6) - new test
src/lib/dhcpsrv/lease_mgr.h
src/lib/dhcpsrv/lease_mgr.cc
AddressStatsRow6 - new struct that contains a single row of IPv6 lease
statistical data
AddressStatsQuery6 - new base class for fulfilling the IPv6 statistical
lease data query
LeaseMgr::recountAddressStats6() - new method that recalculates per-subnet
and global stats for IPv6 leases
LeaseMgr::startAddressStatsQuery6() - new virtual method which creates
then executes the IPv6 lease stats query
src/lib/dhcpsrv/cfg_subnets4.cc
CfgSubnets4::removeStatistics()
- added removal of all lease statistics per subnet, and global declined address
stats
CfgSubnets4::updateStatistics()
- added call to LeaseMgr::recountAddressStats4
src/lib/dhcpsrv/lease.cc
src/lib/dhcpsrv/lease.h
Replaces lease state constants with LeaseState enumeration.
src/lib/dhcpsrv/lease_mgr.cc
src/lib/dhcpsrv/lease_mgr.h
struct AddressStatsRow4 - contains the content of one row of the IPv4
lease statistical data result set
class AddressStatsQuery4 - base class for constructing the IPv4
lease statistical data result set for an IPv4 lease storage
LeaseMgr::recountAddressStats4() - new method which recalculates
per-subnet and global stats for IPv4 leases
LeaseMgr::startAddressStatsQuery4() - new virtual method that fetches
the IPv4 lease statistical data result set
src/lib/dhcpsrv/lease_mgr_factory.h
src/lib/dhcpsrv/lease_mgr_factory.cc
LeaseMgrFactory::haveInstance() - new static method which indicates
whether or not the lease manager singleton exists
src/lib/dhcpsrv/memfile_lease_mgr.h
src/lib/dhcpsrv/memfile_lease_mgr.cc
MemfileAddressStatsQuery4 - Derivation of AddressStatsQuery4, it constructs
the IPv4 lease statistical data by iterating over IPv4 lease storage
Memfile_LeaseMgr::startAddressStatsQuery4() - new virtual method which
creates, starts, and returns a MemfileAddressStatsQuery4
src/lib/dhcpsrv/memfile_lease_storage.h
Added an a per subnet_ID index to IPv4 storage
src/lib/dhcpsrv/mysql_lease_mgr.h
src/lib/dhcpsrv/mysql_lease_mgr.cc
- Added RECOUNT_LEASE4_STATS query
MySqlAddressStatsQuery4 Derivation of AddressStatsQuery4, it constructs
the IPv4 lease statistical data by executing RECOUNT_LEASE4_STATS
MySqlLeaseMgr::startAddressStatsQuery4() - new virtual method which
creates, starts, and returns a MySqlAddressStatsQuery4
src/lib/dhcpsrv/tests/alloc_engine_utils.cc
AllocEngine6Test::AllocEngine6Test()
AllocEngine4Test::AllocEngine4Test()
- moved lease mgr create up above configuration commit
src/lib/dhcpsrv/tests/cfg_db_access_unittest.cc
~CfgMySQLDbAccessTest() - added destruction of lease manager singleton,
otherwise subsequent tests can fail
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc
GenericLeaseMgrTest::checkStat() - new method for comparing a stat
GenericLeaseMgrTest::checkAddressStats4() - new method for comparing a list
of stats
GenericLeaseMgrTest::makeLease4() - new method for making a minimal lease
GenericLeaseMgrTest::testRecountAddressStats4() - new method which tests
a lease manager's ability to recalculate the IPv4 lease statistics
src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
TEST_F(MemfileLeaseMgrTest, recountAddressStats4) - new test which tests
Memfile_LeaseMgr's ability to recalculate IPv4 lease statistics
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
TEST_F(MySqlLeaseMgrTest, recountAddressStats4) - new test which tests
MySqlLeaseMgr's ability to recalculate IPv4 lease statistics
For the DHCPINFORM case set destination port 68 if:
- direct message sent without ciaddr,
- ciaddr present
Also updated unit test to verify port number for the directly
sent DHCPINFORM without ciaddr.
src/lib/dhcprsrv/images/pgsql_host_data_source.svg
- New class diagram for PgSqlHostDataSource
doc/Doxyfile
- Added src/lib/dhcprsrv/images to IMAGE_PATH
src/lib/dhcpsrv/Makefile.am
- Added images/pgsql_host_data_source.svg to EXTRA_DIST
src/lib/dhcpsrv/libdhcpsrv.dox
- Added subsection postgreSQLHostMgr
src/lib/dhcpsrv/pgsql_connection.h
src/lib/dhcpsrv/pgsql_exchange.h
- Minor cleanup
src/lib/dhcpsrv/tests/pgsql_exchange_unittest.cc
- Added PgSqlBasicsTest test fixture class and tests which exercise all of
the PostgreSQL data types we currently use with round-trip database writes
and reads
src/lib/dhcpsrv/pgsql_connection.cc
src/lib/dhcpsrv/pgsql_connection.h
- Moved PgSqlResult function impls from .h
- Added exception safe implementation of getColumnLabel() to PgSqlResult
src/lib/dhcpsrv/pgsql_exchange.cc
src/lib/dhcpsrv/pgsql_exchange.h
- PsqlBindArray::add() variants which accept raw pointers now throw
if the pointer is NULL
- PgSqlExchange::getColumnLabel() is now a wrapper around PgSqlResult method
src/lib/dhcpsrv/pgsql_host_data_source.h
src/lib/dhcpsrv/pgsql_host_data_source.cc
- Commentary clean up
src/lib/dhcpsrv/pgsql_lease_mgr.cc
- Commentary clean up