Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
ISC Open Source Projects
Kea
Commits
03d3566d
Commit
03d3566d
authored
Jun 21, 2017
by
Marcin Siodelski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[5317] Use ASIO unix domain sockets in DHCPv6 server.
parent
0ea522a2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
0 deletions
+16
-0
src/bin/dhcp6/ctrl_dhcp6_srv.cc
src/bin/dhcp6/ctrl_dhcp6_srv.cc
+4
-0
src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc
src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc
+12
-0
No files found.
src/bin/dhcp6/ctrl_dhcp6_srv.cc
View file @
03d3566d
...
...
@@ -615,8 +615,12 @@ ControlledDhcpv6Srv::ControlledDhcpv6Srv(uint16_t port)
}
server_
=
this
;
// remember this instance for use in callback
// TimerMgr uses IO service to run asynchronous timers.
TimerMgr
::
instance
()
->
setIOService
(
getIOService
());
// CommandMgr uses IO service to run asynchronous socket operations.
CommandMgr
::
instance
().
setIOService
(
getIOService
());
// These are the commands always supported by the DHCPv6 server.
// Please keep the list in alphabetic order.
CommandMgr
::
instance
().
registerCommand
(
"build-report"
,
...
...
src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc
View file @
03d3566d
...
...
@@ -114,6 +114,14 @@ public:
reset
();
};
/// @brief Returns pointer to the server's IO service.
///
/// @return Pointer to the server's IO service or null pointer if the server
/// hasn't been created.
IOServicePtr
getIOService
()
{
return
(
server_
?
server_
->
getIOService
()
:
IOServicePtr
());
}
void
createUnixChannelServer
()
{
static_cast
<
void
>
(
::
remove
(
socket_path_
.
c_str
()));
...
...
@@ -196,11 +204,13 @@ public:
// detect the control socket connect and call the accept handler
ASSERT_TRUE
(
client
->
connectToServer
(
socket_path_
));
ASSERT_NO_THROW
(
server_
->
receivePacket
(
0
));
ASSERT_NO_THROW
(
getIOService
()
->
run_one
());
// Send the command and then call server's receivePacket() so it can
// detect the inbound data and call the read handler
ASSERT_TRUE
(
client
->
sendCommand
(
command
));
ASSERT_NO_THROW
(
server_
->
receivePacket
(
0
));
ASSERT_NO_THROW
(
getIOService
()
->
run_one
());
// Read the response generated by the server. Note that getResponse
// only fails if there an IO error or no response data was present.
...
...
@@ -210,6 +220,8 @@ public:
// Now disconnect and process the close event
client
->
disconnectFromServer
();
ASSERT_NO_THROW
(
server_
->
receivePacket
(
0
));
ASSERT_NO_THROW
(
getIOService
()
->
poll
());
}
/// @brief Checks response for list-commands
...
...
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