AC_ARG_ENABLE([pgsql-ssl],
[AS_HELP_STRING([--enable-pgsql-ssl],
[enable OpenSSL support in PostgreSQL [default=yes]])],
- [pgsql_ssl=yes], [pgsql_ssl=no], [pgsql_ssl=yes])
-AC_DEFINE([HAVE_PGSQL_SSL], [1], [PostgreSQL was built with OpenSSL support])
+ [pgsql_ssl=$enableval], [pgsql_ssl=no], [pgsql_ssl=yes])
+if test "${pgsql_ssl}" = "yes"; then
+ AC_DEFINE([HAVE_PGSQL_SSL], [1], [PostgreSQL was built with OpenSSL support])
+fi
# allow building kea programs with static link to cassandra cpp-driver.
AC_ARG_ENABLE([cql-static-lib],
// No cipher list.
}
if (tls) {
- LOG_ERR(dhcpsrv_logger, DHCPSRV_CQL_NO_TLS_SUPPORT)
+ LOG_ERROR(dhcpsrv_logger, DHCPSRV_CQL_NO_TLS_SUPPORT)
.arg(DatabaseConnection::redactedAccessString(parameters));
isc_throw(DbOpenError, "Attempt to configure TLS for CQL backend");
}
// No cipher list.
}
if (tls) {
- LOG_ERR(dhcpsrv_logger, DHCPSRV_CQL_NO_TLS_SUPPORT)
+ LOG_ERROR(dhcpsrv_logger, DHCPSRV_CQL_NO_TLS_SUPPORT)
.arg(DatabaseConnection::redactedAccessString(parameters));
isc_throw(DbOpenError, "Attempt to configure TLS for CQL");
}
}
#else
if (tls > 0) {
- LOG_ERR(dhcpsrv_logger, DHCPSRV_PGSQL_NO_TLS_SUPPORT)
+ LOG_ERROR(dhcpsrv_logger, DHCPSRV_PGSQL_NO_TLS_SUPPORT)
.arg(DatabaseConnection::redactedAccessString(parameters_));
isc_throw(DbOpenError, "Attempt to configure TLS for PostgreSQL "
<< "backend (built with this feature disabled)");
}
#else
if (tls > 0) {
- LOG_ERR(dhcpsrv_logger, DHCPSRV_PGSQL_NO_TLS_SUPPORT)
+ LOG_ERROR(dhcpsrv_logger, DHCPSRV_PGSQL_NO_TLS_SUPPORT)
.arg(DatabaseConnection::redactedAccessString(parameters_));
isc_throw(DbOpenError, "Attempt to configure TLS for PostgreSQL "
<< "backend (built with this feature disabled)");
EXPECT_NO_THROW(HostMgr::addBackend(connectionString(CQL_VALID_TYPE,
NULL, VALID_HOST, INVALID_USER, VALID_PASSWORD)));
+ // Check that CQL does not support SSL/TLS.
+ EXPECT_THROW(HostMgr::addBackend(connectionString(CQL_VALID_TYPE,
+ VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, VALID_CERT)),
+ DbOpenError);
+
+ EXPECT_THROW(HostMgr::addBackend(connectionString(CQL_VALID_TYPE,
+ VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, 0, VALID_KEY)),
+ DbOpenError);
+
+ EXPECT_THROW(HostMgr::addBackend(connectionString(CQL_VALID_TYPE,
+ VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, 0, 0, VALID_CA)),
+ DbOpenError);
+
+ EXPECT_THROW(HostMgr::addBackend(connectionString(CQL_VALID_TYPE,
+ VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, 0, 0, 0, VALID_CIPHER)),
+ DbOpenError);
+
// Tidy up after the test
destroyCqlSchema();
}
ASSERT_GE(leases.size(), 6u);
// Use the same current time for all leases.
- time_t current_time = time(NULL);
+ time_t current_time = time(0);
// Add them to the database
for (size_t i = 0u; i < leases.size(); ++i) {
expired_leases.size());
// Update current time for the next test.
- current_time = time(NULL);
+ current_time = time(0);
// Also, remove expired leases collected during the previous test.
expired_leases.clear();
ASSERT_GE(leases.size(), 6u);
// Use the same current time for all leases.
- time_t current_time = time(NULL);
+ time_t current_time = time(0);
// Add them to the database
for (size_t i = 0u; i < leases.size(); ++i) {
expired_leases.size());
// Update current time for the next test.
- current_time = time(NULL);
+ current_time = time(0);
// Also, remove expired leases collected during the previous test.
expired_leases.clear();
// (This is really a check on LeaseMgrFactory, but is convenient to
// perform here.)
EXPECT_THROW(LeaseMgrFactory::create(connectionString(
- NULL, VALID_NAME, VALID_HOST, INVALID_USER, VALID_PASSWORD)),
+ 0, VALID_NAME, VALID_HOST, INVALID_USER, VALID_PASSWORD)),
InvalidParameter);
EXPECT_THROW(LeaseMgrFactory::create(connectionString(
// Check for missing parameters
EXPECT_NO_THROW(LeaseMgrFactory::create(connectionString(
- CQL_VALID_TYPE, NULL, VALID_HOST, INVALID_USER, VALID_PASSWORD)));
+ CQL_VALID_TYPE, 0, VALID_HOST, INVALID_USER, VALID_PASSWORD)));
// Check that invalid login data does not cause an exception, CQL should use
// default values.
// Check that CQL allows the hostname to not be specified.
EXPECT_NO_THROW(LeaseMgrFactory::create(connectionString(
- CQL_VALID_TYPE, NULL, VALID_HOST, INVALID_USER, VALID_PASSWORD)));
+ CQL_VALID_TYPE, 0, VALID_HOST, INVALID_USER, VALID_PASSWORD)));
+
+ // Check that CQL does not support SSL/TLS.
+ EXPECT_THROW(LeaseMgrFactory::create(connectionString(
+ CQL_VALID_TYPE, VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, VALID_CERT)),
+ DbOpenError);
+
+ EXPECT_THROW(LeaseMgrFactory::create(connectionString(
+ CQL_VALID_TYPE, VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, 0, VALID_KEY)),
+ DbOpenError);
+
+ EXPECT_THROW(LeaseMgrFactory::create(connectionString(
+ CQL_VALID_TYPE, VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, 0, 0, VALID_CA)),
+ DbOpenError);
+
+ EXPECT_THROW(LeaseMgrFactory::create(connectionString(
+ CQL_VALID_TYPE, VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, 0, 0, 0, VALID_CIPHER)),
+ DbOpenError);
// Tidy up after the test
destroyCqlSchema();
///
/// This test checks that the conversion is correct.
TEST_F(CqlLeaseMgrTest, checkTimeConversion) {
- const time_t cltt = time(NULL);
+ const time_t cltt = time(0);
const uint32_t valid_lft = 86400; // 1 day
cass_int64_t cql_expire;
/// @brief Basic Lease4 Checks
///
/// Checks that the addLease, getLease4(by address), getLease4(hwaddr,subnet_id),
-/// updateLease4() and deleteLease can handle NULL client-id.
+/// updateLease4() and deleteLease can handle null client-id.
/// (client-id is optional and may not be present)
TEST_F(CqlLeaseMgrTest, lease4NullClientId) {
testLease4NullClientId();
PGSQL_VALID_TYPE, NULL, VALID_HOST, INVALID_USER, VALID_PASSWORD)),
NoDatabaseName);
+ // Check for SSL/TLS support.
+#ifdef HAVE_PGSQL_SSL
+ EXPECT_NO_THROW(HostMgr::addBackend(connectionString(
+ PGSQL_VALID_TYPE, VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, 0, 0, VALID_CA)));
+#else
+ EXPECT_THROW(HostMgr::addBackend(connectionString(
+ PGSQL_VALID_TYPE, VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, 0, 0, VALID_CA)), DbOpenError);
+#endif
+
// Tidy up after the test
destroyPgSQLSchema();
}
PGSQL_VALID_TYPE, NULL, VALID_HOST, INVALID_USER, VALID_PASSWORD)),
NoDatabaseName);
+ // Check for SSL/TLS support.
+#ifdef HAVE_PGSQL_SSL
+ EXPECT_NO_THROW(LeaseMgrFactory::create(connectionString(
+ PGSQL_VALID_TYPE, VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, 0, 0, VALID_CA)));
+#else
+ EXPECT_THROW(LeaseMgrFactory::create(connectionString(
+ PGSQL_VALID_TYPE, VALID_NAME, VALID_HOST, VALID_USER, VALID_PASSWORD,
+ 0, 0, 0, 0, VALID_CA)), DbOpenError);
+#endif
+
// Tidy up after the test
destroyPgSQLSchema();
LeaseMgrFactory::destroy();