SUBDIRS = . tests libloadtests
AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
-AM_CPPFLAGS += $(BOOST_INCLUDES) $(MYSQL_CPPFLAGS)
+AM_CPPFLAGS += $(BOOST_INCLUDES) $(MYSQL_CPPFLAGS) $(CRYPTO_CFLAGS) $(CRYPTO_INCLUDES)
AM_CXXFLAGS = $(KEA_CXXFLAGS)
# Ensure that the message file is included in the distribution
-EXTRA_DIST = mysql_cb_messages.mes
+EXTRA_DIST = mysql_cb_messages.mes
EXTRA_DIST += mysql_hb_messages.mes
EXTRA_DIST += mysql_lb_messages.mes
libdhcp_mysql_la_LIBADD += $(top_builddir)/src/lib/log/libkea-log.la
libdhcp_mysql_la_LIBADD += $(top_builddir)/src/lib/util/libkea-util.la
libdhcp_mysql_la_LIBADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
+libdhcp_mysql_la_LIBADD += $(LOG4CPLUS_LIBS)
+libdhcp_mysql_la_LIBADD += $(CRYPTO_LIBS)
+libdhcp_mysql_la_LIBADD += $(BOOST_LIBS)
# If we want to get rid of all generated messages files, we need to use
# make maintainer-clean. The proper way to introduce custom commands for
AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
AM_CPPFLAGS += -I$(top_builddir)/src/hooks/dhcp/mysql -I$(top_srcdir)/src/hooks/dhcp/mysql
-AM_CPPFLAGS += $(BOOST_INCLUDES)
+AM_CPPFLAGS += $(BOOST_INCLUDES) $(MYSQL_CPPFLAGS) $(CRYPTO_CFLAGS) $(CRYPTO_INCLUDES)
AM_CPPFLAGS += -DLIBDHCP_MYSQL_SO=\"$(abs_top_builddir)/src/hooks/dhcp/mysql/.libs/libdhcp_mysql.so\"
AM_CXXFLAGS = $(KEA_CXXFLAGS)
}
// Register MySQL CB factories with CB Managers
- isc::dhcp::MySqlConfigBackendDHCPv4::registerBackendType();
- isc::dhcp::MySqlConfigBackendDHCPv6::registerBackendType();
+ MySqlConfigBackendDHCPv4::registerBackendType();
+ MySqlConfigBackendDHCPv6::registerBackendType();
LOG_INFO(mysql_cb_logger, MYSQL_CB_INIT_OK);
// Register MySQL HB factories with Host Managers
/// @param handle callout handle passed to the callout.
/// @return 0 on success, 1 otherwise.
int dhcp4_srv_configured(CalloutHandle& /* handle */) {
- isc::dhcp::MySqlConfigBackendImpl::setIOService(IOServicePtr(new IOService()));
- IOServiceMgr::instance().registerIOService(isc::dhcp::MySqlConfigBackendImpl::getIOService());
+ MySqlConfigBackendImpl::setIOService(IOServicePtr(new IOService()));
+ IOServiceMgr::instance().registerIOService(MySqlConfigBackendImpl::getIOService());
return (0);
}
/// @param handle callout handle passed to the callout.
/// @return 0 on success, 1 otherwise.
int dhcp6_srv_configured(CalloutHandle& /* handle */) {
- isc::dhcp::MySqlConfigBackendImpl::setIOService(IOServicePtr(new IOService()));
- IOServiceMgr::instance().registerIOService(isc::dhcp::MySqlConfigBackendImpl::getIOService());
+ MySqlConfigBackendImpl::setIOService(IOServicePtr(new IOService()));
+ IOServiceMgr::instance().registerIOService(MySqlConfigBackendImpl::getIOService());
return (0);
}
/// @return 0 if deregistration was successful, 1 otherwise
int unload() {
// Unregister the factories and remove MySQL backends
- isc::dhcp::MySqlConfigBackendDHCPv4::unregisterBackendType();
- isc::dhcp::MySqlConfigBackendDHCPv6::unregisterBackendType();
- IOServicePtr io_service = isc::dhcp::MySqlConfigBackendImpl::getIOService();
+ MySqlConfigBackendDHCPv4::unregisterBackendType();
+ MySqlConfigBackendDHCPv6::unregisterBackendType();
+ IOServicePtr io_service = MySqlConfigBackendImpl::getIOService();
if (io_service) {
IOServiceMgr::instance().unregisterIOService(io_service);
io_service->stopAndPoll();
- isc::dhcp::MySqlConfigBackendImpl::setIOService(IOServicePtr());
+ MySqlConfigBackendImpl::setIOService(IOServicePtr());
}
LOG_INFO(mysql_cb_logger, MYSQL_CB_DEINIT_OK);
$NAMESPACE isc::dhcp
% MYSQL_HB_DB opening MySQL hosts database: %1
-Logged at debug log level 50.
+Logged at debug log level 40.
This informational message is logged when a DHCP server (either V4 or
V6) is about to open a MySQL hosts database. The parameters of the
connection including database name and username needed to access it
$NAMESPACE isc::dhcp
% MYSQL_LB_DB opening MySQL lease database: %1
-Logged at debug log level 50.
+Logged at debug log level 40.
This informational message is logged when a DHCP server (either V4 or
V6) is about to open a MySQL lease database. The parameters of the
connection including database name and username needed to access it
-/mysql_unittests
\ No newline at end of file
+/mysql_unittests
+
AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
AM_CPPFLAGS += -I$(top_builddir)/src/hooks/dhcp/mysql -I$(top_srcdir)/src/hooks/dhcp/mysql
-AM_CPPFLAGS += $(BOOST_INCLUDES) $(MYSQL_CPPFLAGS)
+AM_CPPFLAGS += $(BOOST_INCLUDES) $(MYSQL_CPPFLAGS) $(CRYPTO_CFLAGS) $(CRYPTO_INCLUDES)
AM_CPPFLAGS += -DINSTALL_PROG=\"$(abs_top_srcdir)/install-sh\"
AM_CXXFLAGS = $(KEA_CXXFLAGS)
-// Copyright (C) 2018-2022 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2018-2024 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
SUBDIRS = . tests libloadtests
AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
-AM_CPPFLAGS += $(BOOST_INCLUDES) $(PGSQL_CPPFLAGS)
+AM_CPPFLAGS += $(BOOST_INCLUDES) $(PGSQL_CPPFLAGS) $(CRYPTO_CFLAGS) $(CRYPTO_INCLUDES)
AM_CXXFLAGS = $(KEA_CXXFLAGS)
# Ensure that the message file is included in the distribution
-EXTRA_DIST = pgsql_cb_messages.mes
+EXTRA_DIST = pgsql_cb_messages.mes
EXTRA_DIST += pgsql_hb_messages.mes
EXTRA_DIST += pgsql_lb_messages.mes
libdhcp_pgsql_la_LIBADD += $(top_builddir)/src/lib/log/libkea-log.la
libdhcp_pgsql_la_LIBADD += $(top_builddir)/src/lib/util/libkea-util.la
libdhcp_pgsql_la_LIBADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
+libdhcp_pgsql_la_LIBADD += $(LOG4CPLUS_LIBS)
+libdhcp_pgsql_la_LIBADD += $(CRYPTO_LIBS)
+libdhcp_pgsql_la_LIBADD += $(BOOST_LIBS)
# If we want to get rid of all generated messages files, we need to use
# make maintainer-clean. The proper way to introduce custom commands for
AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
AM_CPPFLAGS += -I$(top_builddir)/src/hooks/dhcp/pgsql -I$(top_srcdir)/src/hooks/dhcp/pgsql
-AM_CPPFLAGS += $(BOOST_INCLUDES)
+AM_CPPFLAGS += $(BOOST_INCLUDES) $(PGSQL_CPPFLAGS) $(CRYPTO_CFLAGS) $(CRYPTO_INCLUDES)
AM_CPPFLAGS += -DLIBDHCP_PGSQL_SO=\"$(abs_top_builddir)/src/hooks/dhcp/pgsql/.libs/libdhcp_pgsql.so\"
AM_CXXFLAGS = $(KEA_CXXFLAGS)
}
// Register PostgreSQL CB factories with CB Managers
- isc::dhcp::PgSqlConfigBackendDHCPv4::registerBackendType();
- isc::dhcp::PgSqlConfigBackendDHCPv6::registerBackendType();
+ PgSqlConfigBackendDHCPv4::registerBackendType();
+ PgSqlConfigBackendDHCPv6::registerBackendType();
LOG_INFO(pgsql_cb_logger, PGSQL_CB_INIT_OK);
// Register PostgreSQL HB factories with Host Managers
/// @param handle callout handle passed to the callout.
/// @return 0 on success, 1 otherwise.
int dhcp4_srv_configured(CalloutHandle& /* handle */) {
- isc::dhcp::PgSqlConfigBackendImpl::setIOService(IOServicePtr(new IOService()));
- IOServiceMgr::instance().registerIOService(isc::dhcp::PgSqlConfigBackendImpl::getIOService());
+ PgSqlConfigBackendImpl::setIOService(IOServicePtr(new IOService()));
+ IOServiceMgr::instance().registerIOService(PgSqlConfigBackendImpl::getIOService());
return (0);
}
/// @param handle callout handle passed to the callout.
/// @return 0 on success, 1 otherwise.
int dhcp6_srv_configured(CalloutHandle& /* handle */) {
- isc::dhcp::PgSqlConfigBackendImpl::setIOService(IOServicePtr(new IOService()));
- IOServiceMgr::instance().registerIOService(isc::dhcp::PgSqlConfigBackendImpl::getIOService());
+ PgSqlConfigBackendImpl::setIOService(IOServicePtr(new IOService()));
+ IOServiceMgr::instance().registerIOService(PgSqlConfigBackendImpl::getIOService());
return (0);
}
/// @return 0 if deregistration was successful, 1 otherwise
int unload() {
// Unregister the factories and remove PostgreSQL backends
- isc::dhcp::PgSqlConfigBackendDHCPv4::unregisterBackendType();
- isc::dhcp::PgSqlConfigBackendDHCPv6::unregisterBackendType();
- IOServicePtr io_service = isc::dhcp::PgSqlConfigBackendImpl::getIOService();
+ PgSqlConfigBackendDHCPv4::unregisterBackendType();
+ PgSqlConfigBackendDHCPv6::unregisterBackendType();
+ IOServicePtr io_service = PgSqlConfigBackendImpl::getIOService();
if (io_service) {
IOServiceMgr::instance().unregisterIOService(io_service);
io_service->stopAndPoll();
- isc::dhcp::PgSqlConfigBackendImpl::setIOService(IOServicePtr());
+ PgSqlConfigBackendImpl::setIOService(IOServicePtr());
}
LOG_INFO(pgsql_cb_logger, PGSQL_CB_DEINIT_OK);
$NAMESPACE isc::dhcp
% PGSQL_HB_DB opening PostgreSQL hosts database: %1
-Logged at debug log level 50.
+Logged at debug log level 40.
This informational message is logged when a DHCP server (either V4 or
V6) is about to open a PostgreSQL hosts database. The parameters of the
connection including database name and username needed to access it
$NAMESPACE isc::dhcp
% PGSQL_LB_DB opening PostgreSQL lease database: %1
-Logged at debug log level 50.
+Logged at debug log level 40.
This informational message is logged when a DHCP server (either V4 or
V6) is about to open a PostgreSQL lease database. The parameters of the
connection including database name and username needed to access it
-/pgsql_unittests
\ No newline at end of file
+/pgsql_unittests
+
AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
AM_CPPFLAGS += -I$(top_builddir)/src/hooks/dhcp/pgsql -I$(top_srcdir)/src/hooks/dhcp/pgsql
-AM_CPPFLAGS += $(BOOST_INCLUDES) $(PGSQL_CPPFLAGS)
+AM_CPPFLAGS += $(BOOST_INCLUDES) $(PGSQL_CPPFLAGS) $(CRYPTO_CFLAGS) $(CRYPTO_INCLUDES)
AM_CPPFLAGS += -DINSTALL_PROG=\"$(abs_top_srcdir)/install-sh\"
AM_CXXFLAGS = $(KEA_CXXFLAGS)
-// Copyright (C) 2021-2022 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2021-2024 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
std::string access = validConnectString();
CfgMgr::instance().getCurrentCfg()->getCfgDbAccess()->setLeaseDbAccessString(access);
+ // Find the most recently opened socket. Our SQL client's socket should
+ // be the next one.
+ int last_open_socket = findLastSocketFd();
+
+ // Fill holes.
+ FillFdHoles holes(last_open_socket);
+
// Connect to the lease backend.
ASSERT_NO_THROW(LeaseMgrFactory::create(access));
- // The most recently opened socket should be for our SQL client.
- int sql_socket = test::findLastSocketFd();
- ASSERT_TRUE(sql_socket > -1);
+ // Find the SQL client socket.
+ int sql_socket = findLastSocketFd();
+ ASSERT_TRUE(sql_socket > last_open_socket);
// Verify we can execute a query. We do not care if
// we find a lease or not.
std::string access = validConnectString();
CfgMgr::instance().getCurrentCfg()->getCfgDbAccess()->setLeaseDbAccessString(access);
+ // Find the most recently opened socket. Our SQL client's socket should
+ // be the next one.
+ int last_open_socket = findLastSocketFd();
+
+ // Fill holes.
+ FillFdHoles holes(last_open_socket);
+
// Connect to the lease backend.
ASSERT_NO_THROW(LeaseMgrFactory::create(access));
- // The most recently opened socket should be for our SQL client.
- int sql_socket = test::findLastSocketFd();
- ASSERT_TRUE(sql_socket > -1);
+ // Find the SQL client socket.
+ int sql_socket = findLastSocketFd();
+ ASSERT_TRUE(sql_socket > last_open_socket);
// Verify we can execute a query. We do not care if
// we find a lease or not.
access += extra;
CfgMgr::instance().getCurrentCfg()->getCfgDbAccess()->setLeaseDbAccessString(access);
+ // Find the most recently opened socket. Our SQL client's socket should
+ // be the next one.
+ int last_open_socket = findLastSocketFd();
+
+ // Fill holes.
+ FillFdHoles holes(last_open_socket);
+
// Connect to the lease backend.
ASSERT_NO_THROW(LeaseMgrFactory::create(access));
- // The most recently opened socket should be for our SQL client.
- int sql_socket = test::findLastSocketFd();
- ASSERT_TRUE(sql_socket > -1);
+ // Find the SQL client socket.
+ int sql_socket = findLastSocketFd();
+ ASSERT_TRUE(sql_socket > last_open_socket);
// Verify we can execute a query. We do not care if
// we find a lease or not.
access += extra;
CfgMgr::instance().getCurrentCfg()->getCfgDbAccess()->setLeaseDbAccessString(access);
+ // Find the most recently opened socket. Our SQL client's socket should
+ // be the next one.
+ int last_open_socket = findLastSocketFd();
+
+ // Fill holes.
+ FillFdHoles holes(last_open_socket);
+
// Connect to the lease backend.
ASSERT_NO_THROW(LeaseMgrFactory::create(access));
- // The most recently opened socket should be for our SQL client.
- int sql_socket = test::findLastSocketFd();
- ASSERT_TRUE(sql_socket > -1);
+ // Find the SQL client socket.
+ int sql_socket = findLastSocketFd();
+ ASSERT_TRUE(sql_socket > last_open_socket);
// Verify we can execute a query. We do not care if
// we find a lease or not.