Commit 487d2cb8 authored by Stephen Morris's avatar Stephen Morris
Browse files

[2472] Move choice of DHCP6 lease manager to main

Before this change, the choice of lease manager was set in
ControlledDhcpv6Srv.  This means that unit tests for that code
always used the MySQL lease manager (if present).  This change
ensures that unit tests always use the Memfile manager.
parent aa753912
......@@ -39,19 +39,6 @@ using namespace isc::log;
using namespace isc::util;
using namespace std;
namespace {
// @todo: Replace the next line by extraction from configuration parameters
// This is the "dbconfig" string for the MySQL database. It is likely
// that a long-term solution will be to create the instance of the lease manager
// somewhere other than the Dhcpv6Srv constructor, to give time to extract
// the connection string from the configuration database.
#ifdef HAVE_MYSQL
const char* DBCONFIG = "type=mysql name=kea user=kea password=kea host=localhost";
#else
const char* DBCONFIG = "type=memfile";
#endif
};
namespace isc {
namespace dhcp {
......@@ -163,8 +150,8 @@ void ControlledDhcpv6Srv::disconnectSession() {
IfaceMgr::instance().set_session_socket(IfaceMgr::INVALID_SOCKET, NULL);
}
ControlledDhcpv6Srv::ControlledDhcpv6Srv(uint16_t port)
: Dhcpv6Srv(port, DBCONFIG), cc_session_(NULL), config_session_(NULL) {
ControlledDhcpv6Srv::ControlledDhcpv6Srv(uint16_t port, const char* dbconfig)
: Dhcpv6Srv(port, dbconfig), cc_session_(NULL), config_session_(NULL) {
server_ = this; // remember this instance for use in callback
}
......
......@@ -41,7 +41,9 @@ public:
/// @brief Constructor
///
/// @param port UDP port to be opened for DHCP traffic
ControlledDhcpv6Srv(uint16_t port = DHCP6_SERVER_PORT);
/// @param dbconfig Lease manager database configuration string
ControlledDhcpv6Srv(uint16_t port = DHCP6_SERVER_PORT,
const char* dbconfig = "type=memfile");
/// @brief Destructor.
~ControlledDhcpv6Srv();
......
......@@ -34,6 +34,16 @@ using namespace std;
/// Dhcpv6Srv and other classes, see \ref dhcpv6Session.
namespace {
// @todo: Replace the next line by extraction from configuration parameters
// This is the "dbconfig" string for the MySQL database. It is likely
// that a long-term solution will be to create the instance of the lease manager
// somewhere other than the Dhcpv6Srv constructor, to give time to extract
// the connection string from the configuration database.
#ifdef HAVE_MYSQL
const char* DBCONFIG = "type=mysql name=kea user=kea password=kea host=localhost";
#else
const char* DBCONFIG = "type=memfile";
#endif
const char* const DHCP6_NAME = "b10-dhcp6";
......@@ -102,7 +112,7 @@ main(int argc, char* argv[]) {
int ret = EXIT_SUCCESS;
try {
ControlledDhcpv6Srv server(port_number);
ControlledDhcpv6Srv server(port_number, DBCONFIG);
if (!stand_alone) {
try {
server.establishSession();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment