fake_received_.push_back(pkt);
}
- virtual ~NakedDhcpv4Srv() {
- // Close the lease database
- isc::dhcp::LeaseMgrFactory::destroy();
-
- getIOService()->restart();
- try {
- getIOService()->poll();
- } catch (...) {
- }
- }
+ virtual ~NakedDhcpv4Srv() = default;
/// @brief Runs processing DHCPDISCOVER.
///
fake_received_.push_back(pkt);
}
- virtual ~NakedDhcpv6Srv() {
- // Close the lease database
- isc::dhcp::LeaseMgrFactory::destroy();
- getIOService()->stopAndPoll();
- }
+ virtual ~NakedDhcpv6Srv() = default;
/// @brief Processes incoming Solicit message.
///
/// @return 0 if deregistration was successful, 1 otherwise
int unload() {
if (impl) {
- IOServicePtr io_service = impl->getIOService();
- IOServiceMgr::instance().unregisterIOService(io_service);
- io_service->stopAndPoll();
+ IOServiceMgr::instance().unregisterIOService(impl->getIOService());
impl.reset();
- io_service->stopAndPoll();
}
LOG_INFO(ha_logger, HA_DEINIT_OK);
return (0);
// than relying on destruction order.
service->stopClientAndListener();
}
+ config_.reset();
+ services_.reset(new HAServiceMapper());
+ io_service_->stopAndPoll();
}
void
/// @brief Pointer to the high availability services (state machines).
HAServiceMapperPtr services_;
-
};
/// @brief Pointer to the High Availability hooks library implementation.
// Unregister the factories and remove MySQL backends
isc::dhcp::MySqlConfigBackendDHCPv4::unregisterBackendType();
isc::dhcp::MySqlConfigBackendDHCPv6::unregisterBackendType();
- IOServiceMgr::instance().unregisterIOService(isc::dhcp::MySqlConfigBackendImpl::getIOService());
- if (isc::dhcp::MySqlConfigBackendImpl::getIOService()) {
- isc::dhcp::MySqlConfigBackendImpl::getIOService()->stopAndPoll();
+ IOServicePtr io_service = isc::dhcp::MySqlConfigBackendImpl::getIOService();
+ if (io_service) {
+ IOServiceMgr::instance().unregisterIOService(io_service);
+ io_service->stopAndPoll();
+ isc::dhcp::MySqlConfigBackendImpl::setIOService(IOServicePtr());
}
return (0);
}
// Unregister the factories and remove PostgreSQL backends
isc::dhcp::PgSqlConfigBackendDHCPv4::unregisterBackendType();
isc::dhcp::PgSqlConfigBackendDHCPv6::unregisterBackendType();
- IOServiceMgr::instance().unregisterIOService(isc::dhcp::PgSqlConfigBackendImpl::getIOService());
- if (isc::dhcp::PgSqlConfigBackendImpl::getIOService()) {
- isc::dhcp::PgSqlConfigBackendImpl::getIOService()->stopAndPoll();
+ IOServicePtr io_service = isc::dhcp::PgSqlConfigBackendImpl::getIOService();
+ if (io_service) {
+ IOServiceMgr::instance().unregisterIOService(io_service);
+ io_service->stopAndPoll();
+ isc::dhcp::PgSqlConfigBackendImpl::setIOService(IOServicePtr());
}
return (0);
}