From: Francis Dupont Date: Fri, 19 Jun 2015 12:30:51 +0000 (+0200) Subject: [3882a] Added new getDBVersion() class method X-Git-Tag: trac3908_base~2^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=52fe5e23eb0f7716e0a0a7385726aed23e783dd7;p=thirdparty%2Fkea.git [3882a] Added new getDBVersion() class method --- diff --git a/src/lib/dhcpsrv/lease_mgr.cc b/src/lib/dhcpsrv/lease_mgr.cc index 2190f42da0..57b64f0dfe 100644 --- a/src/lib/dhcpsrv/lease_mgr.cc +++ b/src/lib/dhcpsrv/lease_mgr.cc @@ -61,5 +61,10 @@ LeaseMgr::getLease6(Lease::Type type, const DUID& duid, return (*col.begin()); } +std::string +LeaseMgr::getDBVersion() { + isc_throw(NotImplemented, "LeaseMgr::getDBVersion() called"); +} + } // namespace isc::dhcp } // namespace isc diff --git a/src/lib/dhcpsrv/lease_mgr.h b/src/lib/dhcpsrv/lease_mgr.h index 7b0674d11e..edacec1c57 100644 --- a/src/lib/dhcpsrv/lease_mgr.h +++ b/src/lib/dhcpsrv/lease_mgr.h @@ -152,6 +152,10 @@ public: virtual ~LeaseMgr() {} + /// @brief Class method to return extended version info + /// This class method must be redeclared and redefined in derived classes + static std::string getDBVersion(); + /// @brief Adds an IPv4 lease. /// /// @param lease lease to be added diff --git a/src/lib/dhcpsrv/memfile_lease_mgr.cc b/src/lib/dhcpsrv/memfile_lease_mgr.cc index 4703361526..631edf1eaa 100644 --- a/src/lib/dhcpsrv/memfile_lease_mgr.cc +++ b/src/lib/dhcpsrv/memfile_lease_mgr.cc @@ -265,6 +265,14 @@ Memfile_LeaseMgr::~Memfile_LeaseMgr() { } } +std::string +Memfile_LeaseMgr::getDBVersion() { + std::stringstream tmp; + tmp << "Memfile backend " << MAJOR_VERSION; + tmp << "." << MINOR_VERSION; + return (tmp.str()); +} + bool Memfile_LeaseMgr::addLease(const Lease4Ptr& lease) { LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE_DETAIL, diff --git a/src/lib/dhcpsrv/memfile_lease_mgr.h b/src/lib/dhcpsrv/memfile_lease_mgr.h index 75a9089fc5..053b13ce66 100644 --- a/src/lib/dhcpsrv/memfile_lease_mgr.h +++ b/src/lib/dhcpsrv/memfile_lease_mgr.h @@ -134,6 +134,9 @@ public: /// @brief Destructor (closes file) virtual ~Memfile_LeaseMgr(); + /// @brief Local version of getDBVersion() class method + static std::string getDBVersion(); + /// @brief Adds an IPv4 lease. /// /// @param lease lease to be added diff --git a/src/lib/dhcpsrv/mysql_lease_mgr.cc b/src/lib/dhcpsrv/mysql_lease_mgr.cc index 34f91bdf01..40d7565837 100644 --- a/src/lib/dhcpsrv/mysql_lease_mgr.cc +++ b/src/lib/dhcpsrv/mysql_lease_mgr.cc @@ -1265,6 +1265,15 @@ MySqlLeaseMgr::~MySqlLeaseMgr() { // closed in the destructor of the mysql_ member variable. } +std::string +MySqlLeaseMgr::getDBVersion() { + std::stringstream tmp; + tmp << "MySQL backend " << CURRENT_VERSION_VERSION; + tmp << "." << CURRENT_VERSION_MINOR; + tmp << " library " << mysql_get_client_info(); + return (tmp.str()); +} + // Time conversion methods. // diff --git a/src/lib/dhcpsrv/mysql_lease_mgr.h b/src/lib/dhcpsrv/mysql_lease_mgr.h index 9845e6f82d..66dbbe1f2c 100644 --- a/src/lib/dhcpsrv/mysql_lease_mgr.h +++ b/src/lib/dhcpsrv/mysql_lease_mgr.h @@ -122,6 +122,9 @@ public: /// @brief Destructor (closes database) virtual ~MySqlLeaseMgr(); + /// @brief Local version of getDBVersion() class method + static std::string getDBVersion(); + /// @brief Adds an IPv4 lease /// /// @param lease lease to be added diff --git a/src/lib/dhcpsrv/pgsql_lease_mgr.cc b/src/lib/dhcpsrv/pgsql_lease_mgr.cc index da41047618..629cef4011 100644 --- a/src/lib/dhcpsrv/pgsql_lease_mgr.cc +++ b/src/lib/dhcpsrv/pgsql_lease_mgr.cc @@ -965,6 +965,15 @@ PgSqlLeaseMgr::~PgSqlLeaseMgr() { } } +std::string +PgSqlLeaseMgr::getDBVersion() { + std::stringstream tmp; + tmp << "PostgreSQL backend " << PG_CURRENT_VERSION; + tmp << "." << PG_CURRENT_MINOR; + tmp << " library " << PQlibVersion(); + return (tmp.str()); +} + void PgSqlLeaseMgr::prepareStatements() { for(int i = 0; tagged_statements[i].text != NULL; ++ i) { diff --git a/src/lib/dhcpsrv/pgsql_lease_mgr.h b/src/lib/dhcpsrv/pgsql_lease_mgr.h index 8b53f293d3..9df59a515e 100644 --- a/src/lib/dhcpsrv/pgsql_lease_mgr.h +++ b/src/lib/dhcpsrv/pgsql_lease_mgr.h @@ -151,6 +151,9 @@ public: /// @brief Destructor (closes database) virtual ~PgSqlLeaseMgr(); + /// @brief Local version of getDBVersion() class method + static std::string getDBVersion(); + /// @brief Adds an IPv4 lease /// /// @param lease lease to be added