From: Marcin Siodelski Date: Thu, 20 Aug 2015 17:25:38 +0000 (+0200) Subject: [3965] Added stub methods for getting and removing expired leases. X-Git-Tag: trac3238_base~1^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=984712536c4e8baa2f77db34c8c77ba52def984e;p=thirdparty%2Fkea.git [3965] Added stub methods for getting and removing expired leases. --- diff --git a/src/lib/dhcpsrv/mysql_lease_mgr.cc b/src/lib/dhcpsrv/mysql_lease_mgr.cc index ccdb74db06..40d08b8490 100644 --- a/src/lib/dhcpsrv/mysql_lease_mgr.cc +++ b/src/lib/dhcpsrv/mysql_lease_mgr.cc @@ -1932,6 +1932,20 @@ MySqlLeaseMgr::getLeases6(Lease::Type lease_type, return (result); } +void +MySqlLeaseMgr::getExpiredLeases6(Lease6Collection& expired_leases, + const size_t max_leases) const { + isc_throw(NotImplemented, "MySqlLeaseMgr::getExpiredLeases6 is currently" + " not implemented"); +} + +void +MySqlLeaseMgr::getExpiredLeases4(Lease4Collection& expired_leases, + const size_t max_leases) const { + isc_throw(NotImplemented, "MySqlLeaseMgr::getExpiredLeases4 is currently" + " not implemented"); +} + // Update lease methods. These comprise common code that handles the actual // update, and type-specific methods that set up the parameters for the prepared // statement depending on the type of lease. @@ -2074,6 +2088,19 @@ MySqlLeaseMgr::deleteLease(const isc::asiolink::IOAddress& addr) { } } +void +MySqlLeaseMgr::deleteExpiredReclaimedLeases4(const uint32_t secs) { + isc_throw(NotImplemented, "MySqlLeaseMgr::deleteExpiredReclaimedLeases4" + " is not implemented"); +} + +void +MySqlLeaseMgr::deleteExpiredReclaimedLeases6(const uint32_t secs) { + isc_throw(NotImplemented, "MySqlLeaseMgr::deleteExpiredReclaimedLeases6" + " is not implemented"); +} + + // Miscellaneous database methods. std::string diff --git a/src/lib/dhcpsrv/mysql_lease_mgr.h b/src/lib/dhcpsrv/mysql_lease_mgr.h index 66dbbe1f2c..c650d3ec1a 100644 --- a/src/lib/dhcpsrv/mysql_lease_mgr.h +++ b/src/lib/dhcpsrv/mysql_lease_mgr.h @@ -317,6 +317,33 @@ public: virtual Lease6Collection getLeases6(Lease::Type type, const DUID& duid, uint32_t iaid, SubnetID subnet_id) const; + /// @brief Returns a collection of expired DHCPv6 leases. + /// + /// This method returns at most @c max_leases expired leases. The leases + /// returned haven't been reclaimed, i.e. the database query must exclude + /// reclaimed leases from the results returned. + /// + /// @param [out] expired_leases A container to which expired leases returned + /// by the database backend are added. + /// @param max_leases A maximum number of leases to be returned. If this + /// value is set to 0, all expired (but not reclaimed) leases are returned. + virtual void getExpiredLeases6(Lease6Collection& expired_leases, + const size_t max_leases) const; + + + /// @brief Returns a collection of expired DHCPv4 leases. + /// + /// This method returns at most @c max_leases expired leases. The leases + /// returned haven't been reclaimed, i.e. the database query must exclude + /// reclaimed leases from the results returned. + /// + /// @param [out] expired_leases A container to which expired leases returned + /// by the database backend are added. + /// @param max_leases A maximum number of leases to be returned. If this + /// value is set to 0, all expired (but not reclaimed) leases are returned. + virtual void getExpiredLeases4(Lease4Collection& expired_leases, + const size_t max_leases) const; + /// @brief Updates IPv4 lease. /// /// Updates the record of the lease in the database (as identified by the @@ -354,6 +381,20 @@ public: /// failed. virtual bool deleteLease(const isc::asiolink::IOAddress& addr); + /// @brief Deletes all expired-reclaimed DHCPv4 leases. + /// + /// @param secs Number of seconds since expiration of leases before + /// they can be removed. Leases which have expired later than this + /// time will not be deleted. + virtual void deleteExpiredReclaimedLeases4(const uint32_t secs); + + /// @brief Deletes all expired-reclaimed DHCPv6 leases. + /// + /// @param secs Number of seconds since expiration of leases before + /// they can be removed. Leases which have expired later than this + /// time will not be deleted. + virtual void deleteExpiredReclaimedLeases6(const uint32_t secs); + /// @brief Return backend type /// /// Returns the type of the backend (e.g. "mysql", "memfile" etc.) diff --git a/src/lib/dhcpsrv/pgsql_lease_mgr.cc b/src/lib/dhcpsrv/pgsql_lease_mgr.cc index d991000aa8..387683ce1d 100644 --- a/src/lib/dhcpsrv/pgsql_lease_mgr.cc +++ b/src/lib/dhcpsrv/pgsql_lease_mgr.cc @@ -1382,6 +1382,21 @@ PgSqlLeaseMgr::getLeases6(Lease::Type lease_type, const DUID& duid, return (result); } +void +PgSqlLeaseMgr::getExpiredLeases6(Lease6Collection& expired_leases, + const size_t max_leases) const { + isc_throw(NotImplemented, "PgSqlLeaseMgr::getExpiredLeases6 is currently" + " not implemented"); +} + +void +PgSqlLeaseMgr::getExpiredLeases4(Lease4Collection& expired_leases, + const size_t max_leases) const { + isc_throw(NotImplemented, "PgSqlLeaseMgr::getExpiredLeases4 is currently" + " not implemented"); +} + + template void PgSqlLeaseMgr::updateLeaseCommon(StatementIndex stindex, @@ -1494,6 +1509,18 @@ PgSqlLeaseMgr::deleteLease(const isc::asiolink::IOAddress& addr) { return (deleteLeaseCommon(DELETE_LEASE6, bind_array)); } +void +PgSqlLeaseMgr::deleteExpiredReclaimedLeases4(const uint32_t secs) { + isc_throw(NotImplemented, "PgSqlLeaseMgr::deleteExpiredReclaimedLeases4" + " is not implemented"); +} + +void +PgSqlLeaseMgr::deleteExpiredReclaimedLeases6(const uint32_t secs) { + isc_throw(NotImplemented, "PgSqlLeaseMgr::deleteExpiredReclaimedLeases6" + " is not implemented"); +} + string PgSqlLeaseMgr::getName() const { string name = ""; diff --git a/src/lib/dhcpsrv/pgsql_lease_mgr.h b/src/lib/dhcpsrv/pgsql_lease_mgr.h index 9df59a515e..9f6ffbe553 100644 --- a/src/lib/dhcpsrv/pgsql_lease_mgr.h +++ b/src/lib/dhcpsrv/pgsql_lease_mgr.h @@ -322,6 +322,33 @@ public: virtual Lease6Collection getLeases6(Lease::Type type, const DUID& duid, uint32_t iaid, SubnetID subnet_id) const; + /// @brief Returns a collection of expired DHCPv6 leases. + /// + /// This method returns at most @c max_leases expired leases. The leases + /// returned haven't been reclaimed, i.e. the database query must exclude + /// reclaimed leases from the results returned. + /// + /// @param [out] expired_leases A container to which expired leases returned + /// by the database backend are added. + /// @param max_leases A maximum number of leases to be returned. If this + /// value is set to 0, all expired (but not reclaimed) leases are returned. + virtual void getExpiredLeases6(Lease6Collection& expired_leases, + const size_t max_leases) const; + + + /// @brief Returns a collection of expired DHCPv4 leases. + /// + /// This method returns at most @c max_leases expired leases. The leases + /// returned haven't been reclaimed, i.e. the database query must exclude + /// reclaimed leases from the results returned. + /// + /// @param [out] expired_leases A container to which expired leases returned + /// by the database backend are added. + /// @param max_leases A maximum number of leases to be returned. If this + /// value is set to 0, all expired (but not reclaimed) leases are returned. + virtual void getExpiredLeases4(Lease4Collection& expired_leases, + const size_t max_leases) const; + /// @brief Updates IPv4 lease. /// /// Updates the record of the lease in the database (as identified by the @@ -359,6 +386,20 @@ public: /// failed. virtual bool deleteLease(const isc::asiolink::IOAddress& addr); + /// @brief Deletes all expired-reclaimed DHCPv4 leases. + /// + /// @param secs Number of seconds since expiration of leases before + /// they can be removed. Leases which have expired later than this + /// time will not be deleted. + virtual void deleteExpiredReclaimedLeases4(const uint32_t secs); + + /// @brief Deletes all expired-reclaimed DHCPv6 leases. + /// + /// @param secs Number of seconds since expiration of leases before + /// they can be removed. Leases which have expired later than this + /// time will not be deleted. + virtual void deleteExpiredReclaimedLeases6(const uint32_t secs); + /// @brief Return backend type /// /// Returns the type of the backend (e.g. "mysql", "memfile" etc.)