From: Razvan Becheriu Date: Mon, 9 Sep 2024 20:35:41 +0000 (+0300) Subject: [#3536] addressed review comments X-Git-Tag: Kea-2.7.3~41 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f2691806fd26ae751dfd802ad3f929a5de0727e4;p=thirdparty%2Fkea.git [#3536] addressed review comments --- diff --git a/src/lib/dhcpsrv/lease_mgr_factory.cc b/src/lib/dhcpsrv/lease_mgr_factory.cc index 1d293d8f9a..02050b2ad3 100644 --- a/src/lib/dhcpsrv/lease_mgr_factory.cc +++ b/src/lib/dhcpsrv/lease_mgr_factory.cc @@ -77,11 +77,13 @@ LeaseMgrFactory::create(const std::string& dbaccess) { LeaseMgrFactory::registerFactory("postgresql", pgsql_factory, true); #endif - if (parameters[type] == string("memfile")) { - LOG_INFO(dhcpsrv_logger, DHCPSRV_MEMFILE_DB).arg(redacted); - getLeaseMgrPtr().reset(new Memfile_LeaseMgr(parameters)); - return; - } + // Factory method + auto memfile_factory = [](const DatabaseConnection::ParameterMap& parameters) -> TrackingLeaseMgrPtr { + LOG_INFO(dhcpsrv_logger, DHCPSRV_MEMFILE_DB) + .arg(DatabaseConnection::redactedAccessString(parameters)); + return (TrackingLeaseMgrPtr(new Memfile_LeaseMgr(parameters))); + }; + LeaseMgrFactory::registerFactory("memfile", memfile_factory, true); string db_type = it->second; auto index = map_.find(db_type); @@ -121,6 +123,7 @@ LeaseMgrFactory::destroy() { .arg(getLeaseMgrPtr()->getType()); } getLeaseMgrPtr().reset(); + LeaseMgrFactory::deregisterFactory("memfile", true); // Code will be moved to appropriate hook library. #ifdef HAVE_MYSQL LeaseMgrFactory::deregisterFactory("mysql", true); @@ -152,7 +155,7 @@ LeaseMgrFactory::recreate(const std::string& dbaccess, bool preserve_callbacks) bool LeaseMgrFactory::haveInstance() { - return (getLeaseMgrPtr().get()); + return (!!getLeaseMgrPtr()); } TrackingLeaseMgr&