Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ISC Open Source Projects
Kea
Commits
03d3566d
Commit
03d3566d
authored
Jun 21, 2017
by
Marcin Siodelski
Browse files
[5317] Use ASIO unix domain sockets in DHCPv6 server.
parent
0ea522a2
Changes
2
Show whitespace changes
Inline
Side-by-side
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
Supports
Markdown
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