Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Sebastian Schrader
Kea
Commits
238254d3
Commit
238254d3
authored
Nov 13, 2012
by
Stephen Morris
Browse files
[2472] Use MySQL for lease manager backend (if present)
Parameters are hard-coded for the moment.
parent
fa362e40
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/bin/dhcp6/ctrl_dhcp6_srv.cc
View file @
238254d3
...
...
@@ -39,9 +39,23 @@ 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
{
ControlledDhcpv6Srv
*
ControlledDhcpv6Srv
::
server_
=
NULL
;
ConstElementPtr
...
...
@@ -149,8 +163,8 @@ void ControlledDhcpv6Srv::disconnectSession() {
IfaceMgr
::
instance
().
set_session_socket
(
IfaceMgr
::
INVALID_SOCKET
,
NULL
);
}
ControlledDhcpv6Srv
::
ControlledDhcpv6Srv
(
uint16_t
port
/*= DHCP6_SERVER_PORT*/
)
:
Dhcpv6Srv
(
port
),
cc_session_
(
NULL
),
config_session_
(
NULL
)
{
ControlledDhcpv6Srv
::
ControlledDhcpv6Srv
(
uint16_t
port
)
:
Dhcpv6Srv
(
port
,
DBCONFIG
),
cc_session_
(
NULL
),
config_session_
(
NULL
)
{
server_
=
this
;
// remember this instance for use in callback
}
...
...
src/lib/dhcp/mysql_lease_mgr.cc
View file @
238254d3
...
...
@@ -447,8 +447,9 @@ MySqlLeaseMgr::MySqlLeaseMgr(const LeaseMgr::ParameterMap& parameters)
// Open the database
openDatabase
();
// Disable autocommit
my_bool
result
=
mysql_autocommit
(
mysql_
,
0
);
// Enable autocommit. For maximum speed, the global parameter
// innodb_flush_log_at_trx_commit should be set to 2.
my_bool
result
=
mysql_autocommit
(
mysql_
,
1
);
if
(
result
!=
0
)
{
isc_throw
(
DbOperationError
,
mysql_error
(
mysql_
));
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment